【问题标题】:Maddening IE javascript problem?令人抓狂的 IE javascript 问题?
【发布时间】:2009-03-17 13:00:03
【问题描述】:

我有一个使用一点 jQuery 的页面和一个名为“kwick”的效果 - 在我托管在 http://www.batsumaru.com/main.html 的示例页面中,它在所有浏览器中都可以正常工作,没问题。但是在http://www.batsumaru.com 生成实际代码时,Internet Explorer 显示脚本错误(对象不支持)。

我尽力调试,但无法弄清楚发生了什么,代码似乎从一页到另一页都相同,谁能告诉我天才的洞察力可以为我扭转这种局面并帮助我应对美妙的IE的世界?

【问题讨论】:

  • 这两个页​​面对我来说似乎完全不同。最重要的是,使用 Opera(不是 IE)我在 .com/index 页面中看不到任何效果。你确定这是正确的链接吗?
  • 抱歉,它们“看起来”非常不同,当您将鼠标悬停在顶部图片上时,它的“运动”是 IE 和希望 Opera 中工作的“kwick”的本质。在根页面中,javascript错误是我很困惑的事情,除了Safari/Firefox之外效果也不起作用
  • 贴出错误,贴出麻烦的代码?

标签: javascript jquery internet-explorer


【解决方案1】:

这是一个 IE“错误”(因为它假装具有 ID 的元素是 Javascript 全局级别的标识符)和无法var 变量的 Kwick 插件的组合。

Kwick 在内部使用了一个名为container 的变量,但没有在其上使用var,因此它将在全局范围内创建。您的页面包含一个 ID 为 container 的 div,因此 IE 假定 Kwick 代码正在尝试为基于 COM 的元素的默认属性分配值,DOM 元素没有默认属性,因此出现“不支持”错误。

将 div ID 更改为其他内容,一切都会好起来的。

【讨论】:

  • 我会的!所以多个 ID 似乎不会打扰 Firefox/Safari,但我可以看到这是一个禁忌,我非常感谢!
  • 在 IE 上,让元素的 ID 在 Javascript 中全局显示为标识符确实很烦人。其他浏览器不这样做,因此可以让全局 javascript 变量和 DOM 元素 ID 使用相同的名称,因为它们是完全不同的东西。
  • 人们只希望 javascript 错误说“试图重新定义“容器””或有帮助的东西!不过,非常感谢您的帮助,我花了很多时间(主要是设置平行线)来尝试追踪它。干杯!
猜你喜欢
  • 2011-02-07
  • 2011-11-16
  • 2010-12-03
  • 1970-01-01
  • 2015-04-22
  • 2021-12-25
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多