2012-11-10 3 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?

Ошибка Msg из 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

Если вам нужен образец файлов расслоение плотной, пожалуйста, что из 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> 

enter image description here

+0

ли это вход ошибки в IE – defau1t

+1

скопировав вставить эту ссылку и увидеть выход http://www.javascriptkit.com/script/script2/backbox/ Нажмите на изображение – logan

+0

работает отлично для меня в IE8 – ManseUK

ответ

3

о о вашей заботе, почему это происходит в IE, а не в хроме, что из-за этого условия 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

Открытые инструменты разработчика в IE (нажмите F12) и нажмите на вкладку "Console". Вы должны быть в состоянии увидеть там, что есть ошибка сценария 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 явно возвращая нуль, поэтому в дальнейшем вызове заменить не удастся.

+1

Я не мог найти никакой проблемы с функцией замены; Пожалуйста, найдите полный файл js здесь и позвольте мне проблему, пожалуйста; http://www.javascriptkit.com/script/script2/backbox/js/effects.js ответ PLS, так как 50 заходов истекает через несколько дней ... – logan

+0

Вы не смотрите на правильную вещь. Я не пробираюсь сквозь болото запутанного кода, чтобы найти проблему, но вы должны иметь возможность легко увидеть, что проблема связана с этим вызовом: Element.getStyle (_10, «filter») - это, очевидно, возвращает null, поэтому впоследствии вызов заменить на него не удается. – adhocgeek

+0

Почему это не происходит в хроме? Если это возвращает null, то можем ли мы иметь некоторое значение null Если условие заменить некоторое значение. , Что он должен вернуть? Также, пожалуйста, дайте мне знать, почему это работает в других браузерах? – logan

1

В настоящее время Internet Explorer не имеет полной поддержки HTML5. Поэтому любая манипуляция связанными с HTML5 тегами или элементами будет терпеть неудачу. Стоит попытаться включить библиотеку html5shiv, которая обманывает IE, полагая, что эти теги существуют.

Смежные вопросы