当涉及 IE6 和 IE5.5 时,我在我的页面中看到了一个非常有趣的行为。我有一个脚本(supersleight,如果你知道的话),可以在处理 IE6 和 IE5.5 时使 PNG 恢复正常工作。在执行过程中,我想将背景更改为使用 Explorer alpha 过滤器(如果打开了 Javascript,则使用过滤器,否则坚持纯白色)。
我这样做的方法是:
if(document.getElementById('transparency') != null)
document.getElementById('transparency').style.filter= "alpha(opacity=60)";
...透明度是相关对象的 ID。
将其放在 HTML 页面的末尾(或启动“透明度”后的任何位置)会使脚本正常工作。然而,将其放在外部脚本的最后(延迟)会导致过滤器不被应用。
但是,当我删除 if 语句并仅告诉浏览器使用过滤器时,它就起作用了(但是只有少数页面具有“透明度”id)。
我尝试通过使用警报框并尝试 != null
和 == null
来以不同的方式应用 if 语句,但我什么也没得到。
这让我很好奇,所以我测试了这个:
var tt = 5;
if(tt == 5)document.getElementById('transparency').style.filter= "alpha(opacity=60)";
这给出了一个更奇怪的结果,错误屏幕显示
tt is undefined
所有这些都可以在 IE 7 及更高版本中完美运行...
我意识到这确实是两个不同的问题,但仍然...... 谁能告诉我发生了什么事吗?
最佳答案
这有效吗?
var t = document.getElementById('transparency');
if (t && t.style) t.style.filter="alpha(opacity=60)";
这个怎么样?
try {
document.getElementById('transparency').style.filter= "alpha(opacity=60)";
} catch (e) { }
关于Javascript if 语句拒绝从外部脚本 IE6 IE5.5 正确加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3662392/