Hoe weet ik dat een bezoeker javascript aan heeft?

Status
Niet open voor verdere reacties.

marceltje9

Gebruiker
Lid geworden
5 jan 2012
Berichten
395
Hoi allemaaal,

op min site (ja helpmij ik weet dat ik geen reclame mag maken) Kom je eerst op een pagina met een 'fake' timer als die op 100% is word je doorgelinkt
Aleen omdat die code uit javascript bestaat moeten mensen het aan hebben.

Weet iemand meschien of er een script is
die kijkt of je javascript aan hebt?

Als dat niet zo is word ie doorgelinkt



m.v.g
marcel
 
Dus als ik het goed begrijp dan gebeurt er tijdens die timer niks? Gewoon een stupid scriptje om bezoekers voor niks te laten wachten?
Lekkere humor, NOT!

Wat betreft javascript:
het is tegenwoordig normaal dat je javascript niet gebruikt voor essentiele functionaliteiten,
dus ook als die timer van jou wel een functie heeft, dan is het niet verstandig javascript te gebruiken.
Javascript gebruik je om niet-essentiele zaken leuker te maken of makkelijker.
Alle functies die van belang zijn voor het juist functioneren van de website, mogen niet afhankelijk zijn van javascript.
 
Ja er gebeurt wat tijdens de timer,

De site heeft meer de tijd te laden en voorkomt dat de server overload,

Er komen handige berichten voorbij(binnekort)
 
Er bestaat geen script om te controleren of Javascript aan staat of niet (zou ook een beetje raar zijn: een script dat kan melden dat scripts uitgeschakeld zijn). Je moet er daarom voor zorgen dat je site ook werkt als Javascript niet aan staat. Dat kan, in dit geval, op twee manieren. Je kan gebruik maken van de tag noscript. Tussen <noscript> en </noscript> zet je dan een gewone link naar de juiste pagina. Wat je ook nog kan doen is alleen een gewone link naar de juiste pagina plaatsen en vervolgens met document.write en wat CSS de fake timer over die link heen plaatsen zodat mensen bij wie Javascript is ingeschakeld de gewone link niet zien.

Automatisch doorsturen als Javascript niet is ingeschakeld is vrij lastig en volgens mij niet mogelijk.
 
Een kleine aanvulling, In principe kan het wel met een omweg, door gebruikt te maken van een callback in java. Zo'n methode is echter nogal gevoelig en in de praktijk zal er ook voor mensen die wel java hebben (met regelmaat) besloten worden dat ze dat niet hebben (foutieve detectie). Vervolgens kun je als er geen callback komt een timed redirect uitvoeren (evt. via frames)

In de praktijk zijn de oplossingen van supersnail eenvoudiger en beter.

Overigens zijn er waarschijnlijk vele vriendelijkere methoden om een site te balancen dan een timer. Passive caching, delayed loading via ajax, etc.
 
Automatisch doorsturen als Javascript niet is ingeschakeld is vrij lastig en volgens mij niet mogelijk.
Kan wel hoor, door een redirect in je <head> te zetten, zo dus
HTML:
<meta http-equiv="Refresh" content="10; url=urlwaarjeheenwil.html">
Daarmee wordt de browser naar 10 seconden (is uiteraard aan te passen) naar het doel gestuurd. Maar, dit is eigenlijk een slecht idee, er zijn denk ik weinig mensen die zullen wachten om een website binnen te komen, tenzij ze heel zeker weten dat a) De inhoud voor hen interessant is en b) Er geen andere site is waar ze die inhoud kunnen vinden.
 
Ik weet dat het mogelijk is om mensen door te sturen via die methode, maar dan worden mensen die Javascript wel ingeschakeld hebben ook doorgestuurd. Omdat het in de head staat kon ik geen manier bedenken om dat voor die mensen uit te schakelen.
 
Ik weet dat het mogelijk is om mensen door te sturen via die methode, maar dan worden mensen die Javascript wel ingeschakeld hebben ook doorgestuurd. Omdat het in de head staat kon ik geen manier bedenken om dat voor die mensen uit te schakelen.
Als ik marceltje goed begrijp moeten die uiteindelijk ook worden doorgestuurd, verschil is alleen dat zij een klok te zien krijgen tijdens het wachten. Nu kun je trouwens heel makkelijk zorgen dat die meta redirect niet voor javascript gebruikers geldt, door het ding tussen <noscript> tags te zetten. Dan krijg je dus zo iets in je <head>.
HTML:
<noscript><meta http-equiv="Refresh" content="5; url=urlwaarjeheenwilt.html"></noscript>
<script type="text/javascript">
setTimeout('window.location = "urlwaarjeheenwilt.html"', 5000)
</script>
Mensen met en mensen zonder Javascript worden dan elk op hun eigen manier na 5 seconden doorgestuurd naar een andere pagina. Maar, zoals gezegd, erg gebruiksvriendelijk is dat natuurlijk niet.
 
Laatst bewerkt:
En ook niet toegestaan volgens de validator van w3.
document type does not allow element "META" here

Al zal het in de meeste browsers waarschijnlijk wel werken.
 
Hoi marceltje9,
Vraagje:
  • Wat is er eigenlijk zo zwaar aan de pagina, dat er eerst via een javascript-tussenpagina gepreload zou moeten worden?
  • De html, de css, de images, de te gebruiken scripts, of nog wat anders?
  • En hoeveel kB/MB zit er in elk van die dingen?
 
Ok ik heb een beetje zitten lezen en mijn "javascript timer" gebruik deze code om door de linken: setTimeout('window.location = "http://blablo.nl/index"', 5000)


Is het mogelijk als ik setTimeout('window.location = "http://blablo.nl/index"', 5000)

Weg haal en verander naar:<meta http-equiv="Refresh" content="5; url=urlwaarjeheenwilt.html">


??

m.v.g
marcel
 
  1. Proberen is weten! :)
  2. Ja, dat kan: zowel met als zonder javascript ga je dan na 5 tellen over naar de dezelfde pagina urlwaarjeheenwilt.html.
    Of zo'n constructie aan te raden is, is een tweede: je krijgt een vooraf-pagina die waarschijnlijk erg laag scoort in Google, en wellicht bezoekers tegenhoudt voor een vervolg-bezoek. Is ook niet gebruikersvriendelijk: met de "Back"-knop van de browser kan je niet meer terug als je eenmaal op de urlwaarjeheenwilt.html bent terechtgekomen.
  3. En het antwoord op m'n vraagjes van nummer #11? *)

Met vriendelijke groet,
CSShunter
__________
*) Op dit moment heeft de homepage wel de vertraging "pagina wordt geladen", maar er wordt niets geladen.
Ik zou ook nog even naar de html-validator kijken: De pagina heeft geen Doctype, geen meta-charset en nog een paar dingetjes. Waarschijnlijk om het goed te maken zitten er twee <body>'s in. ;)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan