[js] meta refresh uitschakelen?

Pagina: 1
Acties:

  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
Ik heb een stukje code om een meta refresh uit het DOM te halen.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function remove_meta_refresh()
{
    var meta = document.getElementsByTagName('meta');

    if(meta) {
        var i;
        for(i = 0; i < meta.length; i++) {
            if(meta[i].httpEquiv.toLowerCase() == 'refresh') {
                Element.remove(meta[i]); // Prototype functie
                break;
            }
        }   
    }   
}


Dit werkt prima, als ik view generated source bekjik, dan staat het er niet meer in. Echter blijft de
browser refreshen. :? In mijn geval staat de refresh op 30 seconden.

De reden waarom ik de meta refresh gebruik is omdat ik non obtrusive wil werken, en zowel met JS uit als aan een functionele pagina wil hebben. Als JS ingeschakeld is, dan zal dmv Ajax de pagina om de x seconden worden aangepast, zo niet dan elke 30 seconden een refresh dmv. de meta refresh.

Iemand een idee waarom het niet werkt?

  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

De browser stelt die timer in zodra de meta-refresh ingelezen is. Hem erna uit de DOM verwijderen heeft dus al geen zin meer.

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 17:53
CRiSiS schreef op woensdag 10 januari 2007 @ 21:54:
Iemand een idee waarom het niet werkt?
Omdat meteen bij het laden van de pagina een timer begint te lopen, denk ik. Met je javascriptje ben je dan dus al te laat, weghalen van de tag heeft geen invloed meer.

  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
ok, dat vermoeden had ik dus ook al, maar is er een manier om die timer aan te passen/verwijderen?

Ik zie namelijk geen andere manier om bovenstaande non obstrusive te doen?

[ Voor 28% gewijzigd door J3roen op 10-01-2007 22:02 ]


  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 17:53
Waarom wil je de pagina refreshen? Als je iets meer info geeft over de functionaliteit is het misschien makkelijker een oplossing te bedenken (want ik denk dat je ook andere dingen moet overwegen omdat je die meta refresh (voor zover ik weet) niet kunt tegenhouden).

  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
De reden voor het refreshen is dat het een now playing script is, en dus constant verandert.
http://www.home.intellit.nl/np als voorbeeld. (let op, zware dev ;))

  • BradJohnson
  • Registratie: Juni 2004
  • Laatst online: 10:38
Je meta-tag tussen <noscript></noscript> zetten zou moeten werken lijkt me.

  • Optix
  • Registratie: Maart 2005
  • Laatst online: 19-11 11:46
CRiSiS schreef op woensdag 10 januari 2007 @ 22:09:
De reden voor het refreshen is dat het een now playing script is, en dus constant verandert.
http://www.home.intellit.nl/np als voorbeeld. (let op, zware dev ;))
Klinkt als een perfect geval voor AJAX :)

.


  • BradJohnson
  • Registratie: Juni 2004
  • Laatst online: 10:38
Klinkt als een perfect geval voor AJAX :)
Maar als de browser geen Javascript ondersteunt kan dat niet en zul je dus je hele pagina moeten refreshen.

  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
bvraalte schreef op woensdag 10 januari 2007 @ 22:19:
[...]

Maar als de browser geen Javascript ondersteunt kan dat niet en zul je dus je hele pagina moeten refreshen.
Precies, het Ajax gedeelte dat komt er zeker, maar zonder JS moet het ook werken (Non Obstrusive).
bvraalte schreef op woensdag 10 januari 2007 @ 22:14:
Je meta-tag tussen <noscript></noscript> zetten zou moeten werken lijkt me.
Ja zal het eens proberen, maar noscript is toch niet helemaal volgens de standaard?

Edit: Nee, dat is niet volgens de standaard ;) Valideert niet meer..

[ Voor 5% gewijzigd door J3roen op 10-01-2007 22:49 ]


  • Optix
  • Registratie: Maart 2005
  • Laatst online: 19-11 11:46
CRiSiS schreef op woensdag 10 januari 2007 @ 22:25:

Ja zal het eens proberen, maar noscript is toch niet helemaal volgens de standaard?
om precies te zijn mag je eigenlijk niet een meta tag in een noscript zetten

.


  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
iemand nog suggesties om het anders op te lossen? Is wellicht een javascript functie waarmee je die timer kunt verzetten?

  • J3roen
  • Registratie: Januari 2000
  • Niet online

J3roen

Intentionally left blank

Topicstarter
Blijkbaar niet.. Ik heb nog dieper gezocht maar helaas. Ik denk dat ik het ga oplossen door daarvoor een javascript detectie te doen (in een andere pagina dus). Op zich geen grote ramp, maar toch jammer.
Pagina: 1