繁体   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