Verwenden von Javascript zum Überschreiben oder Deaktivieren des Meta-Aktualisierungs-Tags
Ich habe eine Webseite, wo ich versuche, mit Ajax zu aktualisieren, ein paar Sachen auf der Seite ohne Neuladen. Allerdings gibt es eine gute chance, dass viele meiner Benutzer mit mobilen Browsern, die keine Javascript-Unterstützung, so bin ich versucht, das design der Seite mit meta-refresh-tags, die irgendwie arbeiten nur für Benutzer ohne Javascript. Gibt es eine Möglichkeit, dies zu tun?
Ich habe versucht, den tag in einem noscript-element, aber meine primitiven Handy-browser würde das nicht anerkennen. Ich bin am überlegen, eventuell das setzen eines Cookies zu erinnern, wenn der browser des Benutzers Javascript unterstützt, oder mit einer version der Seite funktioniert ohne Javascript, und versucht, Javascript zu verwenden, leiten Sie den Benutzer auf eine anspruchsvollere version, aber ich Frage mich, ob es eine elegantere Art und Weise, es zu tun. Hat jemand irgendwelche Ideen?
InformationsquelleAutor der Frage Elias Zamaria | 2010-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht überschreiben meta-refresh-tag mit JavaScript.
Aber Sie können dies tun,
Nehmen wir an, Ihre Seite ist bei ->
http://example.net/mike.html
Fügen Sie den folgenden code dort->
InformationsquelleAutor der Antwort Hrishi
Habe ich herausgefunden, dass der noscript-tag funktioniert ganz gut. Zum Beispiel, können Sie dies nur, nachdem Sie schließen das head-element:
Keine Notwendigkeit zu entfernen der meta-tag mit script, da ein browser-Skript-Unterstützung ignorieren alles, was sich in den noscript-element.
InformationsquelleAutor der Antwort Shaun
Leider aus @bluesmoon AntwortManipulation der DOM nicht mehr funktioniert.
Ist die Problemumgehung zum abrufen der ursprünglichen markup, finden und ersetzen Sie die meta-refresh-element, und dann schreiben Sie das neue Dokument mit dem markup ersetzt.
Ich bin nicht sicher, wie Sie Sie zum abrufen der ursprünglichen markup mit JavaScript, außer für das senden einer zusätzlichen Anforderung mit
XMLHttpRequest
.In der Oper, hier ist was ich benutze:
Disable meta refresh 1.00.js
:Opera hat auch eine eingebaute Funktion, die deaktiviert meta aktualisiert. Keine Notwendigkeit von JavaScript.
InformationsquelleAutor der Antwort XP1
Entfernen Sie einfach das meta-tag mit javascript:
Ich habe den refresh-timeout auf 2 Sekunden oben nur als Beispiel. Sie könnten wahrscheinlich Weg mit 1, die zweite auch, aber nicht setzen Sie ihn auf 0, weil das javascript nicht die chance bekommen, führen Sie in diesem Fall. 0 ist auch ärgerlich, weil es bricht die zurück-Taste usability.
Bearbeiten 2012-10-23 Dies nicht, erscheinen nicht mehr zur Arbeit. Der Knoten bekommt noch entfernt, aber es scheint, dass die Browser Parsen und halten Sie im Speicher alle meta-tags alle Weg.
InformationsquelleAutor der Antwort bluesmoon
Meta-tags sind schrecklich in diesem Fall. Was ist mit Suchmaschinen??
Was Sie tun sollten, ist, um es etwas wie ich umrissen habe hier.
Ihre links sollten zeigen Sie auf alle Baustellen, als ob es eine web 2.0 Seite. Dann mit dem event-Handler (onclick) Sie verbessern die user experience durch den Einsatz von ajax.
So ajax-Benutzer werden nicht auf links, der link wird eher bearbeitet, wenn geklickt, und sandte einen ajax-request auf die gleiche url, aber mit einem ajax-GET-parameter.
Nun auf der server-Seite müssen Sie in der Lage sein, um generieren, die ganze Seite durch irgendeine Methode. Wenn es ein ajax-request senden Sie die entsprechenden Inhalte. Wenn es nicht ein ajax-request, yo generieren die vollständige Seite mit den zugehörigen Teil embedded.
Ihre Website wird SEO-freundlicheverfügbar an mobile Benutzer und schrittweise verbessert für Menschen, die auf modernen Browsern und Plattformen. Schließlich ajax generierte hash-links verwendbar, auch als links.
Awesomeness. 🙂
InformationsquelleAutor der Antwort galambalazs
Dieser arbeitete für mich wunderbar! (ausprobiert in chrome)
InformationsquelleAutor der Antwort Amresh
Ich bin damit einverstanden, dass meta-refresh ist nicht der richtige Weg hier. Neben galambalazs " - link, suchen Sie nach "progressive enhancement".
Aber im Geiste auf die Beantwortung der Frage, die Sie könnten versuchen, die folgenden. Es ist ungetestet, funktionieren möglicherweise nicht in allen Browsern, sollte aber in die richtige Richtung:
Ob das entfernen es würde aufhören, und der browser aktualisiert wird, in der Zeit, bleibt abzuwarten.
InformationsquelleAutor der Antwort Jhong
Dies ist ein Beispiel von, was ich verwenden und es funktioniert perfekt (vor allem unter Firefox)!
InformationsquelleAutor der Antwort Mr Lindsay George