2012-11-10 41 views
6

我在我的网站上提供了一个类似的图像查看器在下面的网站中提到。 http://www.javascriptkit.com/script/script2/backbox/ 图像查看器在Chrome中正常工作,但在Internet Exlporer中不能正常工作; 由于安全原因,我没有给出我的网站详细信息,但您可以通过在Chrome和Internet Explorer中复制粘贴链接下的链接来查看问题。 http://www.javascriptkit.com/script/script2/backbox/Javascript图像查看器不能在Internet Explorer中工作

点击上面的链接图片,看到在Internet Explorer中的错误&看到在其他浏览器一样,看其工作状态... PFB快照

可以在任何一你说为什么不在Internet Explorer中工作?

错误消息从IE F12 devolper工具控制台区域是:

SCRIPT5007: Unable to get value of the property 'replace': object is null or undefined effects.js, line 1 character 1747

effects.js = http://www.javascriptkit.com/script/script2/backbox/js/effects.js

如果您需要样品js文件,请获得从使用http://www.javascriptkit.com/script/script2/backbox/backboxfiles.zip

HTML是;

<link rel="stylesheet" href="backbox.css" type="text/css" /> 
<script type="text/javascript" src="js/prototype.compressed.js"></script> 
<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script> 
<script type="text/javascript" src="js/lightbox.js"></script> 
<script type="text/javascript" src="js/dhtmlHistory.js"></script> 
<script type="text/javascript" src="js/customsignsheader.js"></script> 

<div onclick="dhtmlHistory.add('location1',{message: 'backbox'});countdown()"> 
<a href="images/babyhand.jpg" rel="lightbox[slide]" caption="A Bunch of Grapes"> 
<img src="images/sunset.jpg" alt="lime" width="400" height="300" border="0" /></a> 
</div> 

<a href="images/desert.jpg" rel="lightbox[slide]" caption="Sunflower"></a> 
<a href="images/beech.jpg" rel="lightbox[slide]" caption="Dolphin"></a> 
<a href="images/lime.jpg" rel="lightbox[slide]" caption="Waterfall"></a> 

<script type="text/javascript" src="js/customsignsfooter.js"></script> 
在IE(按F12)

enter image description here

+0

难道登录IE – defau1t

+1

任何错误,请复制粘贴此链接,看到了输出http://www.javascriptkit.com/script/script2/backbox/ 点击图片 – logan

+0

工程罚款对于我在IE8 – ManseUK

回答

3

,这是因为这种情况if(/MSIE/.test(navigator.userAgent)时,您的浏览器这是真的IE

修正的问题,因为你可以添加评论说:一个'未定义'的条件。
只需更换这行:

if(/MSIE/.test(navigator.userAgent)){Element.setStyle(_10,{filter:Element.getStyle(_10,"filter").replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+_11*100+")"});} 

有:

if(/MSIE/.test(navigator.userAgent)){var filterStyle=Element.getStyle(_10,"filter");if(typeof(filterStyle)!="undefined"){Element.setStyle(_10,{filter:filterStyle.replace(/alpha\([^\)]*\)/gi,"")+"alpha(opacity="+_11*100+")"});}} 

这行:

if(/MSIE/.test(navigator.userAgent)){Element.setStyle(_10,{filter:Element.getStyle(_10,"filter").replace(/alpha\([^\)]*\)/gi,"")});} 

有:

if(/MSIE/.test(navigator.userAgent)){var filterStyle=Element.getStyle(_10,"filter");if(typeof(filterStyle)!="undefined"){Element.setStyle(_10,{filter:filterStyle.replace(/alpha\([^\)]*\)/gi,"")});}} 

个effects.js文件

+0

非常感谢你..工作很好.. :) 我奖励你50个赏金... – logan

1

开放的开发工具,然后单击 “控制台” 选项卡。你应该能够看到那里有与effects.js脚本错误:

SCRIPT5007: Unable to get value of the property 'replace': object is null or undefined 
effects.js, line 1 character 1747 

这至少应该给你的地方开始寻找。

...如果你是懒惰的代码它的失败在实际线路是这样的:

Element.getStyle(_10,"filter").replace(/alpha\([^\)]*\)/gi,"") 

的电话的getStyle显然返回null,那么随后调用替换将失败。

+1

我找不到任何替换函数的问题;请在这里找到完整的js文件,并让我解决问题; http://www.javascriptkit.com/script/script2/backbox/js/effects.js 请回复50个bounts将在几天内到期... – logan

+0

你不看正确的事情。我并没有通过混淆代码来寻找问题,但你应该能够很容易地看到问题出在这个调用上:Element.getStyle(_10,“filter”) - 这显然返回null,所以随后调用替换它失败。 – adhocgeek

+0

为什么这不会发生在铬?如果那是返回null然后我们可以有一些null如果条件替换一些值。 。它应该返回什么?还请让我知道为什么这在其他浏览器中正常工作? – logan

1

Internet Explorer目前不具备完整的HTML5支持。因此,对HTML5相关标签或元素的任何操作都将失败。值得尝试的是包含html5shiv库,它让IE相信这些标签存在。关于你的关心,为什么这发生在IE浏览器,而不是在铬

相关问题