2012-05-17 31 views
0

我使用乔恩设计了我的一个客户在网站上SmoothGallery。唯一的问题是,当我试图转到下一个图像时,IE8出现脚本错误。我已经在所有主流浏览器中查看过这个图库,但是IE浏览器却无法正常工作。IE8和SmoothGallery:刚开脚本错误

真是一个惊喜。

我一直在试图找出问题是什么,但我只得到其中的画廊是基于mootools的库的EVAL-功能的错误,所以没有运气。

有什么办法来设置一个“全例外断点”,simular来设定一个在Xcode,这样我就可以发现,它实际上就挂断代码?还是有人知道这里究竟发生了什么?

该网站是​​负责为画廊的JS文件是http://internetvolk.de/typo3conf/ext/rgsmoothgallery/res/scripts/jd.gallery1010.js

谢谢你在前进,

托比亚斯Timpe

回答

1

您使用的是真的旧版本的mootools的 - 0.89或1.0,如果我没有错。它通过dean edwards的PACKER进行了eval包装,这使得它特别难以调试。

的实例代码本身是有点可怕的和猴子打补丁:

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); 

使用在一个定时器字符串导致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和版本最新壁虎

+0

后实际看到的mootools的版本,这个插件使用了我刚扔掉了所有的JS和写我自己的画廊基于swipejs 。谢谢你打开我的眼睛! –