2012-11-10 13 views
6

Ich habe eine ähnliche Art von Bildbetrachter in unten genannten Website für meine Website erwähnt. http://www.javascriptkit.com/script/script2/backbox/ Der Bildbetrachter funktioniert gut in Chrome, funktioniert aber nicht in Internet Explorer; Ich habe meine Website-Details aus Sicherheitsgründen nicht angegeben, aber Sie sehen das Problem durch Kopieren des folgenden Links in Chrome und Internet Explorer. http://www.javascriptkit.com/script/script2/backbox/Javascript Bildbetrachter funktioniert nicht im Internet Explorer

das Bild in obigen Link klicken und den Fehler im Internet Explorer & das gleiche in anderen Browser sehen einen betriebsbereiten Zustand zu sehen ... PFB Momentaufnahme

Könnte jemand von Sie sagen, warum nicht im Internet Explorer funktioniert?

Fehler Nachricht von IE F12 devolper Tools Konsolenbereich ist:

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

Wenn Sie Probe js Dateien benötigen, wenden Sie sich bitte, dass von http://www.javascriptkit.com/script/script2/backbox/backboxfiles.zip

HTML erhalten verwendet wird;

<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

loggt es Fehler in IE – defau1t

+1

kopieren Sie bitte diesen Link einfügen und die Ausgabe http://www.javascriptkit.com/script/script2/backbox/ Klicken Sie auf das Bild – logan

+0

Adaequat sehen für mich in IE8 – ManseUK

Antwort

3

über Ihre Bedenken in Bezug auf, warum dies in IE auftritt und nicht in Chrom, das ist, weil diese Bedingung if(/MSIE/.test(navigator.userAgent) was wahr ist, wenn Ihr Browser IE ist

für das Problem zu korrigieren, wie Sie in einem Kommentar sagen Sie hinzufügen kann, eine "undefinierte" Bedingung.
ersetzen Sie einfach die folgende Zeile:

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

mit:

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

und diese Zeile:

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

mit:

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

im effects.js Datei

+0

Vielen Dank .. funktioniert gut .. :) Ich habe Sie mit 50 Bounties belohnt ... – logan

1

öffnen Entwicklertools in IE (drücken Sie F12) und klicken Sie auf die "Console" Registerkarte. Sie sollten in der Lage sein, dort zu sehen, dass es ein Fehler mit dem effects.js Skript:

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

, dass zumindest sollten Sie irgendwo geben zu Beginn der Suche.

... und wenn Sie, dass faul sind, dann ist die tatsächliche Codezeile auf es in Ermangelung:

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

Der getStyle Anruf deutlich zurückkehrt null, so anschließend wird Aufruf ersetzen scheitern.

+1

Ich konnte kein Problem mit der Ersetzungsfunktion finden; Bitte finden Sie die vollständige js-Datei hier und lassen Sie mich das Problem bitte; http://www.javascriptkit.com/script/script2/backbox/js/effects.js pls antworten, wie 50 Bounts in wenigen Tagen ablaufen ... – logan

+0

Sie sind nicht auf das Richtige schauen. Ich wühle mich nicht durch einen Morast von verschleiertem Code, um das Problem zu finden, aber Sie sollten leicht erkennen können, dass das Problem bei diesem Aufruf liegt: Element.getStyle (_10, "filter") - das gibt offensichtlich danach null zurück Aufruf ersetzen ersetzen fehlgeschlagen. – adhocgeek

+0

Warum tritt dies nicht in Chrom auf? Wenn das null zurückgibt, dann können wir einige null haben. Wenn Bedingung, etwas Wert zu ersetzen. . Was sollte es zurückgeben? Bitte lassen Sie mich auch wissen, warum das in anderen Browsern funktioniert? – logan

1

Internet Explorer unterstützt derzeit keine vollständige HTML5-Unterstützung. Jede Manipulation von HTML5-bezogenen Tags oder Elementen wird daher fehlschlagen. Es lohnt sich zu versuchen, die html5shiv-Bibliothek einzuschließen, die IE glauben lässt, dass diese Tags existieren.