ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
397
397
EMPFEHLEN
-
24.12.11 12:57 #1
- Registriert seit
- Oct 2006
- Ort
- Schweiz / Fricktal
- Beiträge
- 322
Ich bin dabei eine kleine Bildgalerie mit JS zu realisieren, dafür verwende ich zusätzlich das jQuery Framework.
Nun habe ich aber ein kleines Problem. Ich möchte die Galerie ohne x Anfragen an den Server lösen. Dazu lade ich einfach alle Bilder in ein JS Array und arbeite dann ohne Seitenreload damit.
Das Problem ist nun aber das man den Link auch an andere Personen weiterschicken können soll. Dazu nutze ich nun einfach die URL-Hash Funktion.
Mit
Prüfe ich ob die URL verändert wurde. Das klappt soweit auch Problemlos ausser im InternetExplorer. Da klappt das ganze nicht...HTML-Code:$(window).bind(\'hashchange\', function() {showPic(returnID(window.document.location.hash)) ;})
Nun meine Frage, wie bringe ich dem IE bei das er auf die URL Änderungen reagiert?
-
Der IE < 8 untersützt dieses Event nicht (http://caniuse.com/#search=hashchange).
Hier ein Mini Plugin für dich, dass diese Lücke schließen sollte. Es pollt den hash und feuert das event bei Änderung.
Code javascript:1 2 3 4 5 6 7 8 9 10 11 12
(function() { if (!("onhashchange" in window)) { var oldHash = location.hash; setInterval(function() { if(oldHash !== location.hash) { oldHash = location.hash; $(window).trigger('hashchange'); } }, 20); } })();
-
24.12.11 13:29 #3
- Registriert seit
- Oct 2006
- Ort
- Schweiz / Fricktal
- Beiträge
- 322
Dank dir für die schnelle Antwort.
Das ganze klappt wunderbar
Ich musste jedoch diese Zeile noch bearbeiten:
gegenCode javascript:1
if (!("onhashchange" in window)) {
Code javascript:1
if (!("hashchange" in window)) {
Und schon läuft das ganze wunderbar im IE
-
Jetzt bekommst du das Event in Browsern die es unterstützen doppelt ausgelöst, weil auch der Firefox hat keine "hashchange" Eigenschaft. "onhashchange" war eigentlich korrekt.
Ich habe keinen IE parat. Wo genau hast du meinen Code hin gepackt? Er sollte unmittelbar nach dem jQuery Core kommen.
-
24.12.11 14:41 #5
- Registriert seit
- Oct 2006
- Ort
- Schweiz / Fricktal
- Beiträge
- 322
den Code habe ich direkt nach dem Einbinden des jquery script eingebunden un direkt darunter mein alter Code.
Interessant ist das im IE9 welcher hashchange ja unterstützen sollte das ganze auch nicht klappt. hingegen wenn ich es gegen "hashchange" ersetze klappt es eben da auch, nur dann eben in anderen Browsern doppelt...
-
Naja, "if(!('hashchange') in window)" ist so gut wie "if(false)", deshalb hat das mit dem umbenennen nur bedingt was zu tun. Das sollte so eigentlich funktionieren http://stackoverflow.com/questions/4...answer-4030510
Ich habe hier mal nach geguckt (man nennt so was polyfill) https://github.com/Modernizr/Moderni...wser-Polyfills
Ich empfehle das Plugin, weil mir der Autor bekannt ist: http://benalman.com/projects/jquery-hashchange-plugin/
Sein Kommentar im Code sagt
Also erklärt das das Verhalten.// Does the browser support window.onhashchange? Note that IE8 running in
// IE7 compatibility mode reports true for 'onhashchange' in window, even
// though the event isn't supported, so also test document.documentMode.
doc_mode = doc.documentMode,
supports_onhashchange = 'on' + str_hashchange in window && ( doc_mode === undefined || doc_mode > 7 );
-
24.12.11 15:09 #7
- Registriert seit
- Oct 2006
- Ort
- Schweiz / Fricktal
- Beiträge
- 322
Das Plugin von benalman scheint die Lösung zu sein. Klappt so nun im IE Problemlos.
Vielen Dank und schöne Festtage!
Ähnliche Themen
-
Verweis auf nicht aufgelöstes externes Symbol "_matClose_d" in Funktion ""public: sta
Von jnoessne im Forum C/C++Antworten: 3Letzter Beitrag: 09.11.09, 19:05 -
"anonyme Methode" kann nicht in den Delegattyp "System.Action<int>"konvertiert werden
Von LL0rd im Forum .NET Application und Service DesignAntworten: 2Letzter Beitrag: 30.01.08, 12:58 -
funktion läuft bei dialogAufruf "oninit", bei button-Klick läuft sie nicht
Von nammder im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 15.11.05, 09:10 -
Nach Speichern der HTML-Datei läuft der "Newsticker" nicht mehr!
Von Danie im Forum HTML & XHTMLAntworten: 4Letzter Beitrag: 04.08.04, 20:34 -
Warum läuft eine "Aktion" auf dem Webspace nicht ?
Von Hoppenstedt im Forum HTML & XHTMLAntworten: 5Letzter Beitrag: 16.02.04, 08:47





Zitieren


Login





