IE8和SmoothGallery:刚出现脚本错误

时间:2012-05-17 00:04:04

标签: javascript internet-explorer-8 mootools typo3

我在一个网站上为我的一个客户使用Jon Designs SmoothGallery。唯一的问题是我在尝试转到下一个图像时在IE8中收到脚本错误。我已经在所有主流浏览器中检查了这个库,而且IE再次无效。

真是一个惊喜。

我一直试图找出问题所在,但我只是在画廊所依据的mootools库的eval-function中出错,所以没有运气。

有没有办法设置一个“All-Exceptions Breakpoint”,类似于在Xcode中设置一个,这样我就能找到它实际上挂起的代码?或者有人知道这里到底发生了什么吗?

网站为http://internetvolk.de/tische,负责图库的JS文件为http://internetvolk.de/typo3conf/ext/rgsmoothgallery/res/scripts/jd.gallery1010.js

提前谢谢你,

Tobias Timpe

1 个答案:

答案 0 :(得分:1)

你正在使用真正的旧版mootools - 0.89或1.0,如果我没有弄错的话。通过dean edwards的PACKER进行评估,这使得调试变得特别困难。

实例化代码本身有些糟糕且猴子修补了:

function startGallery17() {
    if (window.gallery17) {
        try {
            var myGallery17 = new gallery($('myGallery17'), {
                timed: false,
                showArrows: true,
                showCarousel: false,
                textShowCarousel: 'Thumbnails',
                embedLinks: false,

                lightbox: true
            });
            var mylightbox = new LightboxSmoothgallery();
        } catch (error) {
            window.setTimeout("startGallery17();", 2500);
        }
    } else {
        window.gallery17 = true;
        if (this.ie) {
            window.setTimeout("startGallery17();", 3000);
        } else {
            window.setTimeout("startGallery17();", 100);
        }
    }
}
window.onDomReady(startGallery17);

在setTimeouts中使用字符串也会导致evals,try块也会阻止您获得任何有用的错误反馈。

如果你想深究这一点,摆脱这些黑客,加载说,这个版本的mootools - https://ajax.googleapis.com/ajax/libs/mootools/1.11/mootools.js - 仍然很老但比你的更新,或者如果可能的话,试试1.12和看看调试变得容易了。

然后摆脱try / catch块,使用window.addEvent('domready', fn)启动代码 - 或者如果依赖于加载的图像,请考虑使用window.addEvent('load', fn)

如果你在页面上所做的只是将一些图像叠加到下一个/上一个,为什么不使用带有新插件的最新mootools - 你所选择的内容并不好。

例如,阅读本教程,我写了如何做到这一点:http://fragged.org/tutorial-write-a-small-content-slider-class-in-mootools-and-extend-it_1321.html或查看伪造:http://mootools.net/forge/打包的内容

应该没有1.4.5(最新)。

请记住,您当前使用的版本可能会破坏ie9和最新的gecko