我刚收到并绕过LightWindow和IE7的问题,在页面加载时,它会在lightwindow.js
的第444行引发JavaScript错误,声称object does not support this property or method
。尽管在各种论坛上发现了各种帖子,但我找不到谷歌的结果有一个解决方案,所以我在这里发帖,希望它能帮助某人/我自己。
许多人提出了脚本文件的特定顺序,但我已经在使用这个顺序(原型,scriptaculous,lightwindow)。
我采取的这些步骤似乎终于有效了,我在这里写的只是作为记录,我不知道也没有时间测试哪些特别“修复”了这个问题:
if (this._getGalleryInfo(link.rel)) {
if (this._getGalleryInfo(this.element.rel)) {
try/catch
块,吞噬了异常。编辑:
我意识到这打破了Firefox。将以下内容添加到第445行现在可以使其正常工作 - try { gallery = this._getGalleryInfo(link.rel); } catch (e) { }
这不是一个非常好的修复,但我的页面(包含没有“rel”标签的lightwindow链接,几个有“rel”标签的lightwindow链接,以及一个“内联”链接)现在在IE7中工作得很好。如果您有任何关于此问题或我的解决方案的问题/改进的问题,请发表评论。
答案 0 :(得分:1)
您可以尝试使用
代替try..catchif( this && this._getGalleryInfo )
{
//use the function
}
你也可以在使用之前以同样的方式检查 this.element.rel (if(this && this.element && this.element.rel)
...)。
看起来有一种情况是_getGalleryInfo
或this.element.rel
尚未初始化,因此它尚不存在。检查它是否存在然后我是否使用它。
当然我可能完全错了,唯一知道的方法就是测试它。
答案 1 :(得分:0)
我遇到了与Lightwindow 2.0,IE6,IE7,IE8(beta)相同的问题;我通过以下方式解决了IE6,IE7,IE8(beta)。
而不是:
if(gallery = this._getGalleryInfo(link.rel))
我列出了443和1157行:
gallery = this._getGalleryInfo(link.rel)
if(gallery)
希望这会有所帮助!
答案 2 :(得分:0)
我通过将第444行改为:
来解决这个问题var gallery = this._getGalleryInfo(link.rel)
然后将后续比较语句更改为:
if(gallery.length > 0)
{
// Rest of code here...
...似乎已经在IE6 +中对其进行了排序,并使其在Firefox等中保持工作状态。
我根本没有改变第1157行,但是我没有看过代码,看看我实际上做了什么,所以我不能评论它的相关性?
我怀疑?示例中使用的rel属性(Evoution?[man])可能会导致IE出现问题但是没有花一些时间测试一些东西,我不能确定?
HTH。