簡體   English   中英

IE修復-條件注釋腳本將不會執行

[英]IE Fixes - Conditional Comment Script will not execute

我正在嘗試建立一個網站。 我可以在除IE 8及更低版本以外的所有瀏覽器中正確顯示。 IE在我的img周圍也顯示了藍框,它們也是錨點。 我可以通過將border屬性設置為none來擺脫這種情況,但是我想使用javascript做到這一點。 我可以在條件注釋中執行我的Javascript。

try
{
var ancs = document.getElementsByTagName("a");

    for(var i=0; i<ancs.length; i++)
    {
        if(ancs[i].childNodes[0].nodeName == "IMG")
        {
            //Set border property to none
        }
    }
}
catch(err)
{
alert(err);
}

很抱歉沒有回答javascript部分。 但是您應該使用CSS 做到這一點:

a img { border:0; }

您的條件評論是什么樣的? 而且,為什么不將其用作樣式呢? 這將比使用JavaScript更快並且得到更好的支持。

IE對於未自行指定的圖像具有默認的邊框樣式。 這是IE的已知問題。 解決此問題的正確方法是向頁面添加默認CSS規則。 如果這是第一批CSS規則之一,那么它將不會影響您已經設置的任何其他CSS規則:

<style type="text/css">
    img {border: none;}
</style>

或者,如果您只想影響<a>標記中的圖像,則可以使用以下CSS:

<style type="text/css">
    a img {border: none;}
</style>

如果只想修復/更改一張圖像,也可以通過指定內嵌邊框在<img>標記中解決該特定圖像:

<img border="0" src="xxxx">

如果您真的想使用javascript,可以在頁面加載后放置此代碼,也可以僅在頁面加載后調用它:

function nukeImageBorders() {
    // assumes all affected images have an <a> tag as their parent
    var list = document.getElementsByTagName("img");
    for (var i = 0, len = list.length; i < len; i++) {
        if (list[i].parentNode.tagName.toLowerCase() == "a") {
            list[i].style.border = "none";
        }
    }
}

您可以在此處查看IE中的代碼工作: http : //jsfiddle.net/jfriend00/cnEhY/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM