Javascript LightWindow&;IE7,“;第444行-对象不支持此属性或方法;
我刚刚收到并绕过了LightWindow和IE7的一个问题,在页面加载时,它在Javascript LightWindow&;IE7,“;第444行-对象不支持此属性或方法;,javascript,debugging,internet-explorer-7,lightwindow,Javascript,Debugging,Internet Explorer 7,Lightwindow,我刚刚收到并绕过了LightWindow和IE7的一个问题,在页面加载时,它在LightWindow.js的第444行抛出了一个JavaScript错误,声称对象不支持此属性或方法。尽管在不同的论坛上找到了不同的帖子,但我找不到一个谷歌搜索结果有解决方案,所以我在这里发布这篇文章,希望它能帮助别人/我自己 许多人建议脚本文件的特定顺序,但我已经在使用这个顺序(prototype、scriptaculous、lightwindow) 这些是我采取的似乎最终起作用的步骤,我在这里写下它们只是作为记录
LightWindow.js
的第444行抛出了一个JavaScript错误,声称对象不支持此属性或方法。尽管在不同的论坛上找到了不同的帖子,但我找不到一个谷歌搜索结果有解决方案,所以我在这里发布这篇文章,希望它能帮助别人/我自己
许多人建议脚本文件的特定顺序,但我已经在使用这个顺序(prototype、scriptaculous、lightwindow)
这些是我采取的似乎最终起作用的步骤,我在这里写下它们只是作为记录,因为我不知道也没有时间测试哪些步骤专门“修复”了这个问题:
将对lightwindow.js的调用移动到页面底部
将第444行更改为:if(this.\u getGalleryInfo(link.rel)){
将第1157行更改为:if(this.\u getGalleryInfo(this.element.rel)){
最后,我用一个try/catch
块将第1417到1474行(我很抱歉,这是脏的)括起来,吞下了异常
编辑:
我意识到这破坏了Firefox。添加以下代码作为第445行现在可以工作了-尝试{gallery=this.\u getGalleryInfo(link.rel);}catch(e){}
这不是一个很好的修复,但是我的页面(包含一个没有“rel”标记的lightwindow链接,几个有“rel”标记的lightwindow链接,以及一个“内联”链接)现在可以在IE7中正常工作。如果您有任何关于此问题的补充或我给定解决方案的问题/改进,请发表评论。而不是try..catch您可以尝试使用
if( this && this._getGalleryInfo )
{
//use the function
}
在使用它之前,您也可以用同样的方法检查this.element.rel(如果(this&&this.element&&this.element.rel)
…)
看起来有一种情况是\u getGalleryInfo
或this.element.rel
尚未初始化,因此它还不存在。请检查它是否存在,然后检查我是否使用了它
当然,我可能完全错了,唯一知道的方法就是测试它。我在Lightwindow 2.0、IE6、IE7、IE8(测试版)上也遇到了同样的问题;我用以下方法解决了IE6、IE7、IE8(测试版)的问题
而不是:
if(gallery=this.\u getGalleryInfo(link.rel))
我放在第443行和第1157行:
gallery=this.\u getGalleryInfo(link.rel)
if(画廊)
希望这会有所帮助!我将第444行更改为:
var gallery = this._getGalleryInfo(link.rel)
然后将后续比较语句更改为:
if(gallery.length > 0)
{
// Rest of code here...
…这似乎已经在IE6+中对其进行了分类,并使其在Firefox中继续工作
我根本没有更改第1157行,但我还没有阅读代码来了解我实际做了什么,所以我不能评论它的相关性
我怀疑示例rel属性(evootion?[man])中使用的?可能导致IE出现问题,但如果不花一些时间测试一些东西,我不能确定
嗯