Javascript LightWindow&;IE7,“;第444行-对象不支持此属性或方法;

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和IE7的一个问题,在页面加载时,它在
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出现问题,但如果不花一些时间测试一些东西,我不能确定