2012-11-10 12 views
6

Zrobiłem podobną przeglądarkę obrazów wspomnianą w poniższej witrynie dla mojej witryny. http://www.javascriptkit.com/script/script2/backbox/ Przeglądarka obrazów działa poprawnie w przeglądarce Chrome, ale nie działa w Internet Exlporer; Nie podałem danych mojej witryny ze względów bezpieczeństwa, ale widzisz problem, wklejając poniższy link w przeglądarce Chrome i Internet Explorer. http://www.javascriptkit.com/script/script2/backbox/Przeglądarka obrazów JavaScript nie działa w przeglądarce Internet Explorer

kliknij obrazek w powyższy link i zobaczyć błąd w przeglądarce Internet Explorer & widzieć to samo w innej przeglądarce, aby zobaczyć jego warunki pracy ... PFB przystawki strzał

mógłby jeden z możesz powiedzieć, dlaczego nie działa w przeglądarce Internet Explorer?

błąd Msg z obszaru konsoli narzędzia F12 devolper IE:

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

Jeśli potrzebujesz przykładowe pliki js, prosimy że od http://www.javascriptkit.com/script/script2/backbox/backboxfiles.zip

HTML jest używany;

<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

Czy zalogowaniu jakiekolwiek błędy w IE – defau1t

+1

proszę skopiować link i wkleić to zobaczyć http://www.javascriptkit.com/script/script2/backbox/ wyjściowy Kliknij na zdjęcie – logan

+0

działa poprawnie dla mnie w IE8 – ManseUK

Odpowiedz

3

czasowo o swoim niepokoju, dlaczego tak się dzieje w IE, a nie w chromie, że to z powodu tej choroby if(/MSIE/.test(navigator.userAgent) co jest prawdziwe, gdy Twoja przeglądarka jest IE

skorygowania problemu, jak powiedział w komentarzu można dodać warunek "niezdefiniowany".
prostu zastąpić ten wiersz:

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

z:

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+")"});}} 

i ten wiersz:

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

z:

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

w effects.js plików

+0

Dziękuję bardzo .. działa dobrze .. :) Nagrodziłem was 50 nagrodami ... – logan

1

Otwarte Narzędzia dla programistów w IE (naciśnij F12) i kliknąć zakładkę "Konsola". Powinieneś być w stanie zobaczyć, że tam nie ma błędu w skrypcie effects.js:

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

To powinno przynajmniej dać gdzieś zacząć szukać.

... a jeśli jesteś że leniwi, rzeczywista linia kodu to upadającego na to:

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

Wezwanie getStyle wyraźnie powrocie null, więc nazywając następnie zastąpić zawiedzie.

+1

Nie mogłem znaleźć żadnego problemu z funkcją zamiany; Proszę znaleźć pełny plik js tutaj i pozwól mi problem proszę; http://www.javascriptkit.com/script/script2/backbox/js/effects.js pls odpowiedz jak 50 bountów wygasa za kilka dni ... – logan

+0

Nie patrzysz na właściwą rzecz. Nie szukam problemu w gąszczu zaciemnionego kodu, ale powinieneś być w stanie łatwo zauważyć, że problem dotyczy tego połączenia: Element.getStyle (_10, "filter") - to oczywiście zwraca zero, więc później wywołanie replace na nie powiedzie się. – adhocgeek

+0

dlaczego to nie występuje w chrome? Jeśli to jest zwracana wartość null Następnie możemy mieć pewne null Jeśli warunek do zastąpienia Niektóre wartości. . Co powinien powrócić? Proszę również dać mi znać, dlaczego to działa dobrze w innych przeglądarkach? – logan

1

Internet Explorer nie obsługuje obecnie pełnej obsługi HTML5. Każda manipulacja tagami lub elementami związanymi z HTML5 zakończy się niepowodzeniem. Warto próbować dołączyć bibliotekę html5shiv, która nakłania IE do przekonania, że ​​istnieją te znaczniki.

Powiązane problemy