Systemet med klientbaserat JavaScript för granskning + omdirigering av webbläsare, version 3.1

Vad handlar det om?

Skriptet granskar om gamla och utgångna eller allmänt inkapabla webbläsare används, för att se till att dessa inte kraschar av alltför komplicerad skript- eller hypertextkodning, utan istället att de ges ett lämpligt meddelande på en förenklad webbsida, eller ett varningsmeddelande, eller blir omdirigerade till en alternativ sektion av webbplatsen. Sannolikt vill Du utnyttja fräscha teknologier samtidigt som Du inte vill riskera att förlora besökare bara därför att inte alla har uppdaterat sina webbläsare eller datorer på ett tag. Allt detta kan nu skötas automatiskt av detta klientbaserade javaskript, och alla nödvändiga funktioner är i hög grad anpassningsbara. Det anpassade skriptet kan med fördel tillåtas bli en del av hela webbplatsens struktur. Det är ett värdefullt verktyg för att omdirigera trafik på alla slags webbplatser, och för dem som inte har tillgång till serverbaserade skript är det särskilt värdefullt.

Förberedelser

För att skriptet skall kunna integreras med webbplatsen, behöver några saker förberedas.

Ingångs- eller NOSCRIPT-sidan

En besökare kommer in på Din webbplats (eller en del av den) via en ingångssida. Det är där Du skall förvänta Dig att vilken webbläsare som helst kommer insnubblandes. Sidan med denna viktiga adress i webbplatsens struktur måste kunna hantera allting. Det är här som ett skript behövs, som tar reda på allt väsentligt om både gamla och nya webbläsare. I denna sida infogas en skriptkod, som är skriven för att inte förvirra en enda webbläsare på något sätt. Tioåriga trotjänare som Netscape Navigator eller tidiga versioner av Internet Explorer tas omedelbart om hand och flyttas bort till en särskilt förberedd Reserv-URL, medan nyare webbläsare möter de specialanpassade skriptfunktionerna.

Gransknings- och omdirigeringsskriptet kan inte styra de cirka 5-10% webbläsare, som saknar eller inte tillåter skriptaktiviteter, t.ex. Lynx. För dessa erbjuds istället länkar, så att den surfande besökaren inte hamnar i en återvändsgränd. Vidare bör en NOSCRIPT-sektion infogas på ingångssidan. Om det på nästa rad står rubriken "MinaOrdinarieSidor" har webbläsaren hoppat över texten som finns mellan NOSCRIPT-taggar precis här under, vilket indikerar att JavaScript f.n. är aktiverat.

MinaOrdinarieSidor

Eftersom ingångssidan avpassats att fungera med alla webbläsare, bör den hållas enkel och allt tekniskt avancerat innehåll sparas till andra sektioner av webbplatsen. Gransknings- och omdirigeringsskriptet förflyttar olika teknologier till specifika sektioner. Låt oss för enkelhets skull ponera att webbplatsen är uppdelad i två sektioner, en ordinarie och en annan (alternativ) sektion. I det förvalda läget kommer skriptet att omdirigera den besökande webbläsaren till en katalog i den ordinarie sektionen (eventuellt med bibehållet namn från originalfilen) eller helt enkelt till en annan fil varsomhelst i webbplatsstrukturen.

Skriptet förutsätter emellertid inte att man alltid använder omdirigering. Det låter sig konfigureras att hantera specialskriven skriptkod samtidigt som webbläsaren blir kvar på samma adress. I det fallet säger vi att skriptet är i ScriptAction modus. Mer om det senare.

MinReservURL

Innan Du börjar anpassa skriptet, bör Du bestämma sökvägen till och förbereda en webbsida med HTML 3.2-kodning för utgången teknologi. Denna webbsida kan med fördel vara en och densamma för hela webbplatsen, även om gransknings- och omdirigeringsskriptet används upprepade gånger. Här är ett exempel på en sådan sida.

uasniff.js och uaenvir.js

Skriptet använder två externa skriptkällfiler:

Den första av dessa skriptkällfiler kommer eventuellt att innehålla kod som Du själv genererar nedan. För mer information om övrigt innehåll i skriptfilerna, gå till demonstrationssidan [på engelska].

Anpassa och testa skriptkällkoden

Nu är det dags att göra i ordning det genererade tillägget till uasniff.js-filen. Lite längre ned kan Du klicka på en knapp för att få skriptkoden genererad genast, men naturligtvis skall Du anpassa den till Din webbplats’ särskilda behov, och det gör Du snabbt och smidigt genom några klick härunder. Koden som sedermera genereras skall Du kopiera och klistra in antingen i uasniff.js-filen eller infoga direkt på ingångssidan.

Var god lägg märke till att alla gröna fält indikerar att Du rekommenderas göra anpassningar av koden, medan de gula fälten endast är för finjusteringar, och därför åtminstone inledningsvis kan hoppas över.

Bestämma skriptets modus

Det förvalda skriptmoduset är enkelt omdirigeringsmodus, förflyttandes den surfande besökaren vidare till en annan adress, såvida webbläsaren uppfyller villkoren för tillträde till webbplatsen. Märk väl, att gransknings- och omdirigeringsskriptet medger flera skriptalternativ för att anpassas till behoven för Din webbplats. Nedan finns en lista över de tre generella skriptalternativen. Klicka radioknappen för att välja det önskade, och (om något annat än det första alternativet väljs) även länken i det gröna fältet för att göra ytterligare inställningar.

¬ Enkelt omdirigeringsmodus (förvalt)

Med enkelt omdirigeringsmodus kommer den integrerade skriptfunktionen Relocate att flytta accepterade webbläsare vidare till webbplatssektionen MinaOrdinarieSidor. Med tillämpning av de förvalda inställningarna, blir resultatet att webbläsaren omdirigeras såsom framgår av tabellen.

Gecko IE6 IE5.5 IE5 IE4 NC4 Opera7.5 Opera4 NN3 NN2 Lynx
Ordi­narie Ordi­narie Ordi­narie Ordi­narie Reserv-URL Reserv-URL Ordi­narie Reserv-URL Reserv-URL Reserv-URL Länk

Efter att Du valt detta modus, kan Du gå ned på sidan för att valfritt anpassa inställningarna för tillträde till webbplatsen (och därigenom strunta i de återstående valen i listan).

¬ Modusen för ScriptAction

Med modusen för ScriptAction kommer skriptfunktionen ScriptAction att exekvera en kod som Du skrivit själv. Med tillämpning av de förvalda inställningarna, blir resultatet som tabellen visar.

Gecko IE6 IE5.5 IE5 IE4 NC4 Opera7.5 Opera4 NN3 NN2 Lynx
Min kod Min kod Min kod Min kod Reserv-URL Reserv-URL Min kod Reserv-URL Reserv-URL Reserv-URL NOSCRIPT

Du skall skriva in Dina egna skräddarsydda skriptkommandon i "EDITABLE SECTION" i den då redan genererade skriptkoden (se långt nedan). Som förval är skriptkommandon för ECMAScript, d.v.s. åtminstone JavaScript version 1.3 eller JScript version 3.0, förutsatt.

Du uppmanas att anpassa inställningarna — klicka för att öppna ett nytt fält

Skriptspråkbegränsning

Med de förvalda inställningarna kan Du bara använda allmänt förekommande skriptkommandon, men med alternativen nedan, får Du möjlighet att använda JavaScript 1.5 eller JScript 5.5, vilka följer reglerna i ECMAScript, 3:e utgåvan. Webbläsare som inte är kompatibla med detta skriptspråk kommer, med det första modusalternativet nedan (Blandat), att erhålla MinaAndraSidor, och med det andra valfria modusalternativet (Dubbelt), att erhålla en alternativ skriptkod, vilken Du lagt till själv. Med tillämpning av något av dessa modus, blir resultatet som tabellen visar.

Gecko IE6 IE5.5 IE5 (Win) IE4 NC4 Opera7.5 Opera4 NN3 NN2 Lynx
Blandat Min kod Min kod Min kod Andra sidor Andra sidor Andra sidor Min kod Andra sidor Andra sidor Reserv-URL NOSCRIPT
Dubbelt Min kod Min kod Min kod Min andra kod Min andra kod Min andra kod Min kod Min andra kod Min andra kod Reserv-URL NOSCRIPT
Blandat modus för ScriptAction — bocka rutan (obockad som förval) för att välja det
(Detta alternativ är tillgängligt endast om "Modusen för ScriptAction" är förprickat.)

Med Blandat modus för ScriptAction kommer omdirigeringen av webbläsare att ske beroende på kompatibilitet med ECMAScript, 3:e utgåvan (snarare än 1:a utgåvan). Förbockad kommer Din skräddarsydda skriptkod (Min kod) att döljas för webbläsare som inte implementerat tilläggen i den tredje utgåvan, t.ex. snävare definitioner av felsituationer eller formatet för numeriska resultat. De webbläsarna skulle istället skickas vidare till MinaAndraSidor.

Dubbelt modus för ScriptAction — bocka rutan (obockad som förval) för att välja det
(Detta alternativ är tillgängligt endast om "Modusen för ScriptAction" är förprickat.)

Med Dubbelt modus för ScriptAction, skall skriptfunktionen ScriptAction innehålla två skriptkoder, vilka Du lagt till själv, den enklare koden för JavaScript av versionerna 1.1-1.3 och JScript av versionerna 3.0-5.0, och den reguljära koden beroende på kompatibilitet med ECMAScript, 3:e utgåvan (snarare än 1:a utgåvan). Förbockad kommer Din skräddarsydda skriptkod (Min kod) att döljas för webbläsare som inte implementerat tilläggen i den tredje utgåvan, t.ex. snävare definitioner av felsituationer eller formatet för numeriska resultat. De webbläsarna skulle istället få exekvera den enklare koden (Min andra kod).

Visa avancerade alternativ inkl. sättet att ersätta ECMAScript-kravet med en specificerad DOM

I enlighet med inställningarna ovan kommer skriptspråkkravet för att exekvera den reguljära skräddarsydda skriptkoden (Min kod) att bli som följer. Du kan ersätta kravet med ett annat som listas i rullgardinsmenyrutan. Tabellen förklarar hur snifferskriptet avgör vilket DOM DOM-alternativ som är förhanden.

"w3cdom" W3C:s (industri-)standardiserade DOM begagnandes document.getElementById och även document.getElementsByTagName och document.createElement
"domelementstyle" W3C:s (industri-)standardiserade DOM (som ovan) och begagnandes element.style på ett element skapat av document.createElement
"domcreateevent" W3C:s (industri-)standardiserade DOM (som förut) och begagnandes document.createEvent
OBS! Detta alternativ kommer att utesluta alla versioner av Internet Explorer.

Gällande värde av villkorsvariabeln restrictScript =

Efter att Du valt ett av modusen för ScriptAction skall Du gå ned på sidan för att valfritt anpassa inställningarna för tillträde till webbplatsen (och därigenom strunta i de återstående valen i listan).

¬ Tudelande omdirigeringsmodus

Med Tudelande omdirigeringsmodus kommer den integrerade skriptfunktionen Relocate att flytta accepterade webbläsare vidare till antingen MinaAndraSidor eller MinaOrdinarieSidor.

Som förval kommer DHTML-webbläsare bli hänvisade till MinaAndraSidor, d.v.s. den alternativa sektionen av webbplatsen, medan HTML4-standardkompatibla webbläsare, som Internet Explorer fr.o.m. version 5 för Mac, version 6 för Windows, Opera fr.o.m. version 7 och Netscape fr.o.m. version 6 och andra Gecko-baserade webbläsare såsom Firefox, liksom Safari, istället att bli hänvisade till MinaOrdinarieSidor, d.v.s. en sektion av webbplatsen, som är avsedd för nya eller särskilt kapabla teknologier. Med tillämpning av de förvalda inställningarna, blir resultatet som tabellen visar.

Gecko IE6 IE5.5 IE5 (Win) IE4 NC4 Opera7.5 Opera4 NN3 NN2 Lynx
Ordi­narie Ordi­narie Andra sidor Andra sidor Reserv-URL Reserv-URL Ordi­narie Reserv-URL Reserv-URL Reserv-URL Länkar

Du uppmanas att anpassa inställningarna — klicka för att öppna ett nytt fält

Inställningar för MinaOrdinarieSidor (om ett tudelande omdirigeringsmodus är applicerat)

Modifiera omdirigeringsvillkoret för MinaOrdinarieSidor som det framgår på menyraderna. I den första menyn bestämmer Du basen för omdirigeringen. Som förval är det ett krav att webbläsaren kan presentera en webbsida i standardkompatibilitetsläge. Du kan antingen sänka kravet för att också inkludera andra webbläsare, eller Du kan höja kravet med hjälp av den andra menyn.

   envir.

Tekniskt omdirigeringsvillkor för att bli hänvisad till MinaOrdinarieSidor kommer att vara det följande:
var level2Option = "". Webbläsare och/eller datoromgivningar som inte är kompatibla kommer att bli hänvisade till MinaAndraSidor.

Särskilt operativsystem Om MinaOrdinarieSidor kräver att ett särskilt operativsystem används, skall Du fastslå det villkoret i menyn nedan.
&& envir.

Tekniskt omdirigeringsvillkor för att bli hänvisad till MinaOrdinarieSidor kommer även att omfatta det följande:
var level2AddOS = "" Datoroperativsystem som inte är kompatibla kommer att bli hänvisade till MinaAndraSidor.

[ Se till att det finns en prick i rätt radioknapp till vänster om ¬-tecknet, innan Du fortsätter. ]

Kontrollera vilka teknologier som har tillträde till webbplatsen

Med tillämpning av inställningarna ovan, är tillträdet till Din webbplats nu tryggt kontrollerat och förutsägbart. Emellertid finns det så klart några alternativa inställningar för att begränsa tillträdet till webbplatsen.

Inställningar för tillträde till webbplatsen

Kontrollera tillträdet för utgångna webbläsarprodukter

Beroende på skriptmodusvalet tidigare, är det aktuella och rekommenderade värdet av villkorsvariabeln exclusionOption =

Du kan välja mellan en tillåtande eller en DHTML- eller en restriktiv policy genom att göra det adekvata valet ovan. Den tillåtande policyn ger effektivt alla webbläsare tillträde till Din webbplats utom de mycket gamla såsom Internet Explorer 3 och Netscape Navigator 2. Tabellen visar detaljerna:

NS6.2 NS6.1 IE5.5 IE5.01 IE4 NC4 Opera7 Opera4 NN3 NN2
3 Tillåtande Tillåt Tillåt Tillåt Tillåt Tillåt Tillåt Tillåt Tillåt Tillåt Reserv-URL
4 DHTML Tillåt Tillåt Tillåt Tillåt Tillåt Tillåt Tillåt Reserv-URL Reserv-URL Reserv-URL
5 Restriktiv Tillåt Reserv-URL Tillåt Tillåt Reserv-URL Reserv-URL Tillåt Reserv-URL Reserv-URL Reserv-URL

Visa avancerade inställningar — klicka fär att öppna ett nytt fält

Du kan finjustera tillträdesbegränsningarna specifikt för Trident- och Gecko-produkterna.

Gällande värde av villkorsvariabeln restrictTrident =

Gällande värde av villkorsvariabeln restrictGecko =

Kontrollera tillträdet för begränsade renderingsmöjligheter

Nu kan Du gå ned på den här sidan för att testa och generera skriptkoden. Innan Du gör det, kan Du lägga till tillträdesbegränsningar på basis av renderingskapacitet. Förvalt tillämpar skripten inga sådana begränsningar.

Bocka den här rutan (obockad som förval), om skärmar mindre än 800x600 bildpunkter skall omdirigeras till MinReservURL. (Detta alternativ är inte tillgängligt i vissa fall om modus för Script Action är applicerat.)

Visa avancerade alternativ

Tekniskt skärmstorlekvillkor för att få tillträde till webbplatsen blir som anges här.
Avancerad valmöjlighet: var restrictScreenSize =

Bocka den här rutan (obockad som förval), om skärmar med mindre än 256 färger skall omdirigeras till MinReservURL. (Detta alternativ är inte tillgängligt i vissa fall om modus för Script Action är applicerat.)

Visa avancerade alternativ

Tekniskt skärmfärgvillkor för att få tillträde till webbplatsen blir som anges här.
Avancerad valmöjlighet: var restrictScreenColor =

Bocka den här rutan (obockad som förval), om webbläsare som inte är kompatibla med CSS1, t.ex. Netscape Communicator (version 4.x), skall omdirigeras till MinReservURL. (Detta alternativ är inte tillgängligt i vissa fall om modus för ScriptAction är applicerat.)

Visa avancerade alternativ

Tekniskt CSS1-villkor för att få tillträde till webbplatsen blir som anges här.
Avancerad valmöjlighet: var restrictStyle =

Testa och generera koden

Simulera en vanlig webbläsare

Välj en webbläsare och omgivning i rullgardinsmenyn och generera koden genom att trycka "Generera simulerade variabler". Testa sedan koden genom att trycka den röda knappen.

» » »

Generera kodutdraget för det valfria tillägget till uasniff.js

När Du är klar med testningarna, kan Du välja att generera den riktiga koden, och spara den mellan anvisade rader alldeles i början av filen som benämns uasniff.js. Du kan valfritt spara den under ett annat namn. Denna fil anropas i HEAD-skriptet och kan placeras var som helst i katalogstrukturen.

Emellertid, om Du hellre föredrar att ha hela den genererade koden samlad på ingångssidan, skall Du gå ned på sidan (och inte bry Dig om knapparna nedan).

| | | | | 

Avbocka den här rutan (bockas när kod genereras ovan) om Du inte avser att addera till uasniff.js, d.v.s. hellre vill ha hela den anpassade skriptkoden samlad på ingångssidan än delar av koden i en extern skriptkällfil.

Justera och generera HTML-koden

Sökvägarna på Din webbplats

Delar av koden för gransknings- och omdirigeringsskriptet måste infogas i HTML-documentet, och inte bara p.g.a. anropet av skriptets källfiler, utan också för att några omoderna webbläsare inte kan läsa in externa skriptfiler. I det följande skall Du anpassa koden som skall återfinnas i dokumenthuvudet.

Den anpassningsbara källfilen

Högerklicka på länken nedan och hämta den senaste versionen av uasniff.js:

Om Du genererat kod till denna fil, så öppna den med ett redigeringsprogram och klistra in den genererade koden på angiven plats i början av filen. Om inga tillägg görs till filen skall den publiceras som den är på en adress Du anger nedan.

Skriv den relativa sökvägen till uasniff.js på Din server. Skriv såväl sökvägen till katalogen som eventuellt förändrat filnamn. Lämna det vänstra fältet blankt om filen är i samma katalog som ingångssidan:
[../]

Den fix och färdiga källfilen

Skriv den relativa sökvägen till den förberedda skriptkällfilen på Din server, men observera att filnamnet läggs till automatiskt. Lämna fältet blankt om filen är i samma katalog som ingångssidan:
[../]

Högerklicka sedan på länken nedan och spara den senaste versionen av denna fil på den angivna adressen. Kodversionen får inte vara lägre än 3.1.0 för att den skall fungera riktigt:

Ange MinReservURL

Som en konsekvens av de gjorda inställningarna längre upp på sidan, kommer vissa enkla webbläsare eller datorteknologier inte att svara upp mot några villkor för tillträde till Din webbplats. Adressen nedan är den där reservdokumentet återfinns.

Skriv en fullständig URL eller en relativ sökväg. Förvalt är en sökväg relativ till den aktuella adressen:
http://någon.server.domän/[../]

Ange sökvägen till MinaOrdinarieSidor (kan ej anges ifall icke tillämplig)

Förutom i vissa fall med "modusen för ScriptAction", kommer webbläsarklienten att omdirigeras från ingångssidan till en anpassad webbplatsadress. Adressen nedan är den där det anpassade måldokumentet återfinns.

Skriv en absolut sökväg, eller relativ sökväg såsom /MinWebbplatsRoot/MinMålKatalog/, eller som ../MinMålKatalog/. Skriptet kommer då att förutsätta att filnamnet är detsamma som originalnamnet på den omdirigerade adressen.

Om Du vill använda ett annat filnamn, skall Du skriva det intill sökvägen så det formar en komplett URL. Förvalt är en relativ sökväg till filen demo.html lokaliserad i en underkatalog:
http://någon.server.domän/[../]

Ange sökvägen till MinaAndraSidor (kan ej anges ifall icke tillämplig)

Förutom i vissa fall med "modusen för ScriptAction" och aldrig med "enkelt omdirigeringsmodus", kommer vissa webbläsarklienter att omdirigeras från ingångssidan till en annan, alternativ adress på webbplatsen. Adressen nedan är den där ett alternativt måldokument återfinns.

Skriv en absolut sökväg, eller relativ sökväg såsom /MinWebbplatsRoot/MinMålKatalog/, eller som ../MinMålKatalog/. Skriptet kommer då att förutsätta att filnamnet är detsamma som originalnamnet på den omdirigerade adressen.

Om Du vill använda ett annat filnamn, skall Du skriva det intill sökvägen så det formar en komplett URL. Förvalt är en relativ sökväg till filen demo.html lokaliserad i en underkatalog:
http://någon.server.domän/[../]

Omdirigeringsalternativ

De uteslutna webbläsarna omdirigeras till MinReservURL angiven i dokumentets HEAD-skript. Där återfinns också den viktiga Relocate-funktionen, som är hela skriptets nav, alldeles oberoende av vilket skriptmodus som tillämpas. Som förval tillämpar skriptet metoden location = "NågonURL", med följd att webbläsaren omdirigeras till en annan adress, därigenom markerandes en position i webbläsarens lista över besökta hemsidor (history).

Bocka den här rutan (obockad till en början) ifall Du vill att skriptet skall tillämpa (inte alltid möjligt dock) metoden location.replace("NågonURL") istället, därigenom ej markerandes någon extra position i webbläsarens lista över besökta hemsidor (history).

Generera skriptkoden för ingångssidan

Textfältet ovan kommer att innehålla skriptkoden som skall infogas i HEAD-sektionen på ingångssidan. Du kan välja att få den omgiven av antingen HTML- eller XHTML-taggar.

¬ Genererar giltig HTML (förvalt)
¬ Genererar giltig XHTML

| Nej. Jag börjar om:

När Du har markerat, kopierat och klistrat in den genererade koden i HEAD-sektionen av ingångssidan, är det bara några få saker kvar att göra. Härnäst behöver Du anpassa koden som skall återfinnas i dokumentets <BODY>.

Anropa uaenvir.js

Källfilen uaenvir.js får inte anropas av webbläsare som använder gamla javascript-tolkar (före 1.2). Därför skall en extra skriptkod placeras i dokumentets BODY för att villkorat anropa denna fil. Markera (den redan genererade) koden härunder genom att trycka på knappen och kopiera/klistra in den alldeles under den inledande BODY-taggen:


Initierar skriptet

För att initiera skriptet kan Du ange en händelshanterare, såsom onLoad eller onClick. Funktionen att anropa är "Init", t.ex.

 <body onload="Init()"> 

...eller...

<!-- Initierar skriptet -->
<p><a onmouseover="window.status=''; return true" onclick="Init(); return false" 
  href="MinNoscriptURL.html">Anropar Init()</a></p>

Här är en demonstration av kodutdraget ovan: Anropar Init()

Om JavaScript inte är tillgängligt

I fallet då skriptet inte gör någonting, d.v.s. JavaScript är inte aktiverat eller webbläsaren har inte implementerat skriptspråket, behöver Du tillhandahålla webbsideinnehållet innanför NOSCRIPT-taggar:

<!-- om JavaScript inte är tillgängligt -->
 <noscript><div>
    Ditt webbsidesinnehåll för webbläsare som inte tolkar <cite>JavaScript</cite>
                        </div></noscript>
 
 Saken är klar!

© 2001-2008 lars.pm Alla rättigheter förbehållna
De här skripten är FRIA att använda, men INTE att saluföra. Den ideella upphovsrätten föreskriver att författaren ALLTID SKALL uppges.

Disclaimer: Please, notice that although the script code is believed to work with all current and correctly working JavaScript browsers, it should be applied with care. There is NO WARRANTY of its proper behaviour, and it is offered to the public AS IS, the author refraining from admitting ANY RESPONSIBILITY WHATSOEVER for unexpected results when use is made of it, EVEN IF USED AS INTENDED. The author would REJECT ANY CLAIM for financial or any other loss supposedly because of it.


(senast ändrad 2008-02-08) högst upp