IE修复-条件注释脚本将无法执行
IE Fixes - Conditional Comment Script will not execute
我正在尝试建立一个网站。我有它在每个浏览器中正确显示,除了IE版本8和更低。IE渲染我的img周围的蓝色框,也是锚。我可以通过将边界属性设置为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/
相关文章:
- 如果返回的数据是javascript,$.ajax会自动执行脚本吗
- 如果条件匹配,则停止执行脚本
- 加载服务器端渲染的React组件后执行脚本
- 量角器使用ElementArrayFinder执行脚本怪异
- 在selenium python中执行脚本
- 仅当脚本在视口中时执行脚本
- Chrome扩展:加载窗口后执行脚本
- FireFox扩展对TinyMCE编辑器执行脚本注入
- HTML表单-按'时执行脚本;输入',无需提交
- 当超出范围时,延迟执行脚本Jquery(或SetTimeOut)BUT
- 在执行脚本之前,请查看对象是否未定义
- 如何在整个网页加载后执行脚本
- 多次执行脚本的 jQuery
- 从另一个文件执行脚本
- 从单独的.php文件中执行<脚本>
- 如何防止执行脚本但在 DOM 中显示它
- 在 Mac 上的 Firebug 中继续执行脚本的快捷方式是什么?
- 文档.写入脚本内部不执行脚本
- 在页面加载之前在 ajax 请求的页面上执行脚本
- 如何对包含在父 html 中的子 html 文件执行脚本