Javascript if 语句拒绝从外部脚本 IE6 IE5.5 正确加载

标签 javascript internet-explorer internet-explorer-6 if-statement

当涉及 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/

相关文章:

css - anchor 标记内的多个 float / block /div

javascript - 仅匹配正整数和正浮点值的正则表达式

javascript - 如何使用 angular.js 在 DOM 周围移动 View ?

javascript - 我需要从 javascript 读取 HKEY_CURRENT_USER 吗?

java - 当 ie7 和 ie8 说 "to help protect your bla bla"时,我怎么能意识到?因为它阻止我的 servlet 将字节数组作为文件下载

css - IE6 的渐变不起作用

css - IE中跟随元素使用的空元素背景

javascript - 根据填充表的数据值设置制表符 editorParams

javascript - .js 文件作为 javascript 源,但在后端充当 php

css - 奇怪的 IE CSS 问题