Browser doorsturen naar andere pagina bij afwezigheid JS*

Pagina: 1
Acties:
  • 127 views sinds 30-01-2008
  • Reageer

  • Lucky_me
  • Registratie: November 2000
  • Laatst online: 19-09-2024
Hoe kan ik een w3c verantwoorde code schrijven die controleert of de client browser over javascript beschikt of niet?

Ik heb nu deze tag:
code:
1
2
3
<noscript>
    <meta http-equiv="REFRESH" content="0;url=/noscript.php">
</noscript>

maar die vind w3c niet zo leuk, de meta hoort in de head en de noscript in de body. Iemand misschien een oplossing in PHP? of wat anders uiteraard :)

[ Voor 11% gewijzigd door Lucky_me op 12-12-2005 16:39 ]


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Zo misschien?
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<title></title>
<script type="text/javascript">
//doorverwijzen naar pagina met javascript
</script>
<!--doorverwijzen naar pagina zonder javascript-->
<meta http-equiv="refresh" content="0;url=/noscript.php">
</head>
<body>
</body>
</html>

Sole survivor of the Chicxulub asteroid impact.


  • André
  • Registratie: Maart 2002
  • Laatst online: 15-04 09:54

André

Analytics dude

Maak van je index.php je standaard noscript-pagina en redirect met javascript zodat mensen die JS aan hebben staan naar de JS pagina gaan.

Maar daarbij wil ik wel zeggen dat je beter een pagina kunt maken die helemaal niet van JS afhankelijk is zodat je geen onderscheid hoeft te maken.

  • Lucky_me
  • Registratie: November 2000
  • Laatst online: 19-09-2024
Is wellicht een optie, maar wil het graag beperkt houden met aantal pagina's, is er geen methode waardoor ik geen extra voorpagina hoef te maken?

  • Rickets
  • Registratie: Augustus 2001
  • Niet online

Rickets

Finger and a shift

Lucky_me schreef op maandag 12 december 2005 @ 16:38:
maar die vind w3c niet zo leuk, de meta hoort in de head en de noscript in de body. Iemand misschien een oplossing in PHP? of wat anders uiteraard :)
ASP.NET kan het sowieso.

HttpBrowserCapabilities.JavaScript

If some cunt can fuck something up, that cunt will pick the worst possible time to fucking fuck it up, because that cunt’s a cunt.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Lucky_me schreef op maandag 12 december 2005 @ 16:44:
Is wellicht een optie, maar wil het graag beperkt houden met aantal pagina's, is er geen methode waardoor ik geen extra voorpagina hoef te maken?
PHP/ASP/Whatever gebruiken en een parameter meegeven?

Dus index.php ziet er zo uit:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
  <head>
    <title></title>
    <script type="text/javascript">
      window.location.href= '/index.php?js=1';
    </script>
    <!--doorverwijzen naar pagina zonder javascript-->
    <meta http-equiv="refresh" content="0;url=/index.php?js=0">
  </head>
  <body>
  </body>
</html>


Dat even de GET variabele vangen en afhankelijk daarvan de juiste content displayen (en uiteraard de redirects weglaten, anders blijft 'ie "refreshen" :P )

[ Voor 104% gewijzigd door RobIII op 12-12-2005 16:53 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Afaik is die ook true als de client javascript heeft uitgeschakeld, dan heb je er dus nog niets aan.

Sole survivor of the Chicxulub asteroid impact.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Een serverside taal kan toch echt niet zo zien of een client javascript heeft aanstaan, hooguit kan het aan de hand van de UA-string bepalen of de client javascript capable is, maar aannames op basis van UA-strings zijn op z'n minst onbetrouwbaar te noemen (ik noem het gewoon 'bad practice').

RobIII: window.location (!) ;)

[ Voor 9% gewijzigd door crisp op 12-12-2005 16:52 ]

Intentionally left blank


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
O-)

Fix0red :P

[ Voor 46% gewijzigd door RobIII op 12-12-2005 16:58 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Lucky_me
  • Registratie: November 2000
  • Laatst online: 19-09-2024
hihi, leuke loop. Nee ik weet dat ik wellicht iets onmogelijks vraag, maar het zou handig zijn om op de pagina zelf de check uit te voeren en dan indien nodig te redirecten naar de foutpagina

[ Voor 6% gewijzigd door Lucky_me op 12-12-2005 16:54 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Lucky_me schreef op maandag 12 december 2005 @ 16:54:
hihi, leuke loop. Nee ik weet dat ik wellicht iets onmogelijks vraag, maar het zou handig zijn om op de pagina zelf de check uit te voeren en dan indien nodig te redirecten naar de foutpagina
Het is niet onmogelijk, en die redirects schrijf je uiteraard conditioneel weg naar je HTML. Dus bij een repost (als de JS var binnenkomt met 0 of 1) laat je ze weg uit de HTML en ga je gewoon content poepen.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Lucky_me
  • Registratie: November 2000
  • Laatst online: 19-09-2024
Het is niet onmogelijk, en die redirects schrijf je uiteraard conditioneel weg naar je HTML. Dus bij een repost (als de JS var binnenkomt met 0 of 1) laat je ze weg uit de HTML en ga je gewoon content poepen.
Yupz idd, ur right. Denk dat deze hem gaat worden, thnx!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Stickies lezen is moeilijk. :z
HTML, CSS, JavaScript, Flash en Director? Kijk eerst hier!

PW>>WG + titelfix.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Dat hoeft toch niet persé? Alle properties van window kun je toch direct aanspreken? Volgens mij kun je zelfs location = 'blaat.html'; doen, omdat href de default property van location is. Of werkt dat niet goed in sommige browsers?

Noushka's Magnificent Dream | Unity


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

In de methode van RobIII kan je volgens mij beter, zoals hierboven al gesuggereerd, redirecten mét js, en als er geen redirect plaatsvindt ervanuitgaat dat js uitstaat. Ik denk echter dat je vervolgens tegen een probleem oploopt als je meerdere pagina's hebt: ga je achter elke request ?js=1 plakken als javascript uitstaat (of andersom vanuit estethische redenen) ?

Maar volgens mij is het nóg handiger als je wat meer inzicht geeft in wat je wil bereiken. Als je een js-loze versie aan wil bieden met dezelfde basisfunctionaliteit kan je misschien beter een cookie dumpen als mensen js aanhebben.

Maar in mijn ogen is de enige échte oplossing het middels unobtrusive javascript ervoor zorgen dat als er geen js aanstaat dezelfde pagina met dezelfde html gewoon normaal en fatsoenlijk functioneert. Zo moeilijk is dat niet, bovendien is er veel over te vinden :) .

DM!


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Michali schreef op maandag 12 december 2005 @ 18:49:
[...]

Dat hoeft toch niet persé? Alle properties van window kun je toch direct aanspreken? Volgens mij kun je zelfs location = 'blaat.html'; doen, omdat href de default property van location is. Of werkt dat niet goed in sommige browsers?
Dat ligt helemaal aan de scope waarbinnen je iets uitvoert; JS zal eerst binnen z'n eigen scope-chain zoeken naar een property 'location' en vandaaruit pas naar 'buiten' gaan richting het window-object. Om abiguiteiten te voorkomen en vanwege performance is het dus altijd beter om properties van het window-object ook expliciet als zodanig aan te spreken.

Ter illustratie:
HTML:
1
<a href="#" location="wtf?" onclick="alert(location);return false">klik mij</a>

:)

Intentionally left blank

Pagina: 1