Javascript* för granskning + omdirigering av webbläsare, version 2.4

Hur man använder och applicerar det här skriptet

Syftet

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 riskerar 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 och irritationsfritt för webbplatsens besökare genom användning av det klientbaserade javaskriptet, och alla nödvändiga funktioner är i hög grad anpassningsbara med det här skriptet.

Skriptet skall tillåtas bli en del av hela webbplatsens struktur. Det är ett värdefullt verktyg för att kontrollera trafiken på vilken sajt som helst, och särskilt för webbformgivare som inte har tillgång till serverskript, är det eller ett likartat system nästan en nödvändighet. För att skriptet skall fungera som avsett, behöver några saker förberedas, men dessförinnan skall vi pröva skriptet.

Vad skulle skriptet (med standardinställningar) göra om det initierades här och nu?

Om Du skulle kontrollera källkoden till den aktuella HTML-filen skulle Du upptäcka att skriptkoden är placerad högt upp i HEAD, och att den redan hämtat all skriptdata. Nu behöver Du bara initiera skriptet, vilket Du gör genom att klicka på javaskriptlänken nedan. Skriptets källfiler innehåller standardinställningarna ( -- inga trick!).

Anropar Init-funktionen i det aktuella dokumentets HEAD

De förberedda delarna

Ingångs- eller NOSCRIPT-sidan

En klient kommer in på Din webbplats (eller en sektion av den) via en ingångssida. Det är där Du bör 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, annars framstår hemsidan som ett amatörbygge. Det är här som skriptet behövs, därför att det tar reda på allt väsentligt om både gamla och nya webbläsare. Det är på denna sida som Du placerar HEAD-skriptkoden. Den är skriven för att inte förvirra en enda webbläsare på något sätt. Tio år gamla saker som Netscape Navigator 2 eller Internet Explorer 3 tas omedelbart om hand och flyttas vänligt bort från sajten till sidan vid Din FallBackUponURL, medan övriga webbläsare hanteras på de sätt som Du avgör. Placera följande kodutdrag i dokumentets HEAD-sektion. Kodutdraget iakttar HTML4 enligt strikta villkor. Det finns även en XHTML-anpassad variant. (Kodutdragets versionsnummer får inte vara lägre än 2.2 om koden skall fungera som avsett.)

<!-- Javascript sniffing begins. Change the script src calls and yourFallBackUponURL.
  PM Browser and Environment Client-Side Sniff and Divert Script. Code version 2.22 -->
<script type="text/javascript"><!--
function stopError(){return true}; window.onerror = stopError;
// --></script>
<script type="text/javascript" src="uaenvirsniff.js"></script>
<script type="text/javascript" src="CustomScriptFile.js"></script>
<!-- (C) PeEmm 2001-2004 larspeemm@netscape.net This is author info. Please do not remove. -->
<script type="text/javascript"><!--
var fbURL = "yourFallBackUponURL.htm"
function UseStatic(){ window.location.href = fbURL; }
function Relocate(l,d){(l=='HS')? location.replace(d): location = d;}
function Init(){if ((navigator.appName=='Netscape'&&parseInt(navigator.appVersion)<3) || 
    (navigator.userAgent.indexOf('MSIE')!=-1&&parseInt(navigator.appVersion)<4)){UseStatic();} 
    else {(typeof(UseDynamic)!='undefined')? UseDynamic(): UseStatic();}}
// THE SCRIPT ENDS HERE. (C)PM 2001-2004. FREE FOR USE (NOT FOR TRADE). --></script>
<!-- Javascript sniffing ends.  -->

Observera att det finns en begränsning; gransknings- + omdirigeringsskriptet vet ingenting om de cirka 5-10% webbläsare, som surfas runt på nätet utan (aktiverat) javaskript. Av det skälet behöver Du infoga en NOSCRIPT-sektion på ingångssidan, precis så genomarbetad som Du anser nödvändigt och lämpligt.

FallBackUponURL:en

Innan Du börjar installera skriptet, bör Du veta sökvägen till och redan ha förberett en webbsida med HTML 3.2-kodning för utgången teknologi, vilken Du (helt enkelt) avstår från att stödja. Denna webbsida rekommenderas vara en och densamma för hela sajten, även om gransknings- + omdirigeringsskriptet används flera gånger. Som ett exempel kan Du titta på FallBackUponURL:en som vi har på PM-sajten.

Målkatalogerna (om någon)

Eftersom ingångssidan avpassats att fungera med alla webbläsare, standardiserade likaväl som specialiserade, är det att rekommendera att den hålls enkel och att det flashiga innehållet sparas till undersektioner av webbplatsen, om vilka Du vet exakt vilken webbläsarteknologi Du möter. Gransknings- + omdirigeringsskriptet har utvecklat metoder att förflytta olika teknologier till specifika undersektioner. Nyckeln är att dela upp webbplatsen i sektioner, närmare bestämt en huvudsektion avpassad för merparten och en alternativsektion.

Den senare behövs för äldre eller på annat sätt begränsade webbläsare eller datoromgivningar, vilka inte tillfredsställande förmår hantera moderna hemsidor. Du kan avgöra vilka villkor som skall gälla för huvuddelen (den normala delen) av webbplatsen (vilket enkelt görs med hjälp av formuläret nedan), och då kommer alla villkorade webbläsare och datoromgivningar att hänvisas till ett dokument i en namngiven katalog (t.ex. "DinaOrdinarieSidor/doc/"). Omgivningar eller webbläsare, som är begränsade i sin funktionalitet, såsom lågupplösningsskärmar eller Netscape Navigator 4, kommer istället att hänvisas till ett alternativt dokument i en annan namngiven katalog (t.ex. "DinaAlternativaSidor/alt/").

Skriptet kommer att omdirigera webbläsaren till en annan katalog (som standard behålls namnet på originalfilen) eller till en annan fil i samma katalog. Det sker antingen genom skriptmetoden location = "NågonURL" eller alternativt metoden location.replace("NågonURL"). I det första fallet flyttas webbläsaren vidare till en annan adress och markerar därmed en position i historiesekvensen (webbläsarens history), att jämföra med det andra fallet, då webbläsaren istället ersätter den nuvarande positionen med den nästkommande.

Skriptet förutsätter emellertid inte att man alltid använder omdirigering. Det låter sig konfigureras att hantera många slags skript och samtidigt bli kvar på den nuvarande adressen. I dessa fall är skriptet i moduset ScriptAction mode och sålöedes inte i Relocation mode.

Den förberedda skriptkällfilen

Skriptet använder två externa skriptkällfiler, av vilka en är förberedd (29 kB) och inte i behov av några förändringar. Det länkade dokumentet nedan ger information om denna källfil. Den andra externa skriptkällfilen förväntas Du generera själv med hjälp av formuläret längre ner på den här sidan.

Generera CustomScriptFile.js

Nu är det dags att gära i ordning den genererade CustomScriptFile.js-filen. Längst ned i formuläret nedan 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 att fylla i formuläret.

Rekommenderade paketlösningar (allmänna skriptinställningar)

Koncept nr 1: Stödjer enbart DHTML-webbläsare, och erbjuder alternativa sidor till webbläsare, som inte är standardkompatibla (förvalt),
t.ex. kommer Netscape Navigator 3, Opera 3 att få YourFallBackUponURL, men JavaScript-läsare fr.o.m. version 1.2 blir hänvisade till en annan adress, beroende på om webbläsaren är standardkompatibel eller inte. Internet Explorer fr.o.m. version 5 för Mac, version 6 för Windows, Opera version 6 och Netscape fr.o.m. version 6 och andra Gecko-baserade webbläsare, iakttar alla HTML4-standarden.

Jfr Koncept nr 4.

Koncept nr 2: Stödjer enbart DHTML-webbläsare, och erbjuder inga alternativa sidor,
t.ex. kommer Netscape Navigator 3, Opera 3 att få YourFallBackUponURL, men JavaScript-läsare fr.o.m. version 1.2 blir hänvisade till huvudsektionen av webbplatsen.
Koncept nr 3: Stödjer enbart DHTML-webbläsare, och exekverar ett skräddarsytt skript,
t.ex. kommer Netscape Navigator 3, Opera 3 att få YourFallBackUponURL, men JavaScript-läsare fr.o.m. version 1.2 får tillgång till ett av Dig skräddarsytt skript.
Ytterligare begränsningar i webbläsarstödet . Dessa inställningar gäller koncepten 1-3.

Om bockad kommer webbläsare som inte (i hög grad) iakttar CSS1, t.ex. Netscape Communicator 4, att omdirigeras till YourFallBackUponURL.

Avancerad valmöjlighet: Ytterligare tekniskt villkor för att få tillträde till webbplatsen blir envir.decimalcss >= . Detta skall vara ett värde från 0 till 2.1 som är kalkylerat utifrån style-objektets egenskaper, och som uttrycker en ungefärlig nivå på CSS-implementeringen. Att ändra numret till "1.5" skulle medföra att även Internet Explorer 4 utesluts.

Om bockad kommer skärmar mindre än 800x600 bildpixlar och färre än 256 färger att omdirigeras till YourFallBackUponURL.

Ytterligare tekniskt villkor för att få tillträde till webbplatsen:

Om bockad kommer webbläsare som inte tillåter java att omdirigeras till YourFallBackUponURL.

Ytterligare tekniskt villkor för att få tillträde till webbplatsen:

Koncept nr 4: Stödjer nästan alla webbläsare, och erbjuder alternativa sidor till webbläsare, som inte är standardkompatibla,
t.ex. kommer mycket gamla webbläsare, såsom Internet Explorer 3, att få YourFallBackUponURL, men JavaScript-läsare fr.o.m. version 1.1 blir hänvisade till en annan adress, beroende på om webbläsaren är standardkompatibel eller inte. Internet Explorer fr.o.m. version 5 för Mac, version 6 för Windows, Opera version 6 och Netscape fr.o.m. version 6 och andra Gecko-baserade webbläsare, iakttar alla HTML4-standarden.
Valfri finjusteringDenna inställning är enbart för koncepten 1 och 4

Modifiera omdirigeringsvillkoret för tillträde till den ordinarie sektionen av webbplatsen. Genom att välja ett alternativ här, omdefinierar Du vad som skall gälla för termen "standardkompatibilitet".

Koncept nr 5: Stödjer nästan alla webbläsare, och erbjuder alternativa sidor till webbläsare, som använder utgångna renderingstekniker,
t.ex. kommer mycket gamla webbläsare, såsom Internet Explorer 3, att få YourFallBackUponURL, men JavaScript-läsare fr.o.m. version 1.1 blir hänvisade till en annan adress, beroende på om webbläsaren använder DHTML och åtminstone CSS1. Internet Explorer fr.o.m. version 4 är en sådan webbläsare, men Netscape Communicator är det inte, och den kommer därför att omdirigeras till en alternativ adress.
Valfri finjusteringDenna inställning är enbart för koncept 5

Modifiera omdirigeringsvillkoret för tillträde till den ordinarie sektionen av webbplatsen. Genom att välja ett alternativ här, omdefinierar Du vad som skall gälla för benämningen "utgångna renderingstekniker". Dynamisk HTML är inte en officiell standard, utan snarare ett koncept med HTML4 i kombination med "dynamiska" teknologier såsom JavaScript or JScript.

Koncept nr 6: Stödjer nästan alla webbläsare, exekverar ett skräddarsytt skript för den ordinarie sektionen, och erbjuder alternativa sidor till webbläsare, som inte är standardkompatibla,
t.ex. kommer mycket gamla webbläsare, såsom Internet Explorer 3, att få YourFallBackUponURL, men JavaScript-läsare fr.o.m. version 1.1 blir hänvisade till en annan adress eller får tillgång till ett av Dig skräddarsytt skript, beroende på ECMAScript-kompatibilitet.
Koncept nr 7: Stödjer nästan alla webbläsare, och exekverar alternativa skräddarsydda skriptkoder,
t.ex. kommer mycket gamla webbläsare, såsom Internet Explorer 3, att få YourFallBackUponURL, men JavaScript-läsare fr.o.m. version 1.1 får tillgång till ett utav två av Dig skräddarsydda skript, beroende på ECMAScript-kompatibilitet.
Alternativ till ECMAScriptDen här inställningen är enbart för koncepten 6-7

Du skall skriva skriptkommandona direkt i den genererade skriptkoden. Du skriver Ditt eget skript för ECMAScript-anpassade webbläsare som standardinställning, och låter JavaScript version 1.1 och andra icke-kompatibla webbläsare få den alternativa hemsidan som angivits nedan eller FallBackUponURL.

Avgör skriptspråkets komplexitetsnivå DOM.

Endast de webbläsare som är kapabla att tolka det språk eller modell Du använder kommer att exekvera skriptet. Övriga läsare kommer att få tolka ett annat, enklare skript, eller omdirigeras till en annan valfri adress.
  • NC (proprietär) - använder document.layers d.v.s. Netscape Navigator 4
  • MS (proprietär) - använder document.all d.v.s. Internet Explorer 4-6 och (med spoofning) Opera 5-7
  • ECMAScript (standard) - t.ex. Netscape fr.o.m. version 4.06, Internet Explorer 4+, Opera 4+, Gecko
  • DOM nivå 1 HTML - inkl. document.getElementById t.ex. Internet Explorer 5+, Opera 6+, Gecko
  • DOM nivå 2 Events, Style, CSS, HTML - t.ex. Opera 7 (Events), Gecko (alla fall)

Tekniskt villkor för att initiera ScriptAction-funktionen blir exami.

Sökvägar och extra inställningar

Ange den ibland tillämpade normalsökvägen (ej angivbar ifall icke tillämplig)

Med den förvalda inställningen kommer webbläsaren att omdirigeras till en vald adress. Skriv in en absolut sökväg, t.ex. "/MinSiteRoot/MinMålkatalog/", eller en relativ sökväg, t.ex. "../MinMålkatalog/". Skriptet antar att filnamnet är detsamma som originalnamnet på den omdirigerade adressen (filen). Om Du byter filnamn, skall Du skriva till det nya namnet, så att den fullständiga sökvägen kan utläsas.

Katalogen nedan är där normaldokumentet residerar efter det att skriptet exekverat (ifall omdirigering överhuvudtaget nyttjas).
Exempel: http://någon.server.domän/[mapp]

Tekniskt basvillkor för tillträde till den ordinarie adressen blir envir. som ett resultat av det långt ovan utvalda konceptet. Den här egenskapen blir endast tillämplig ifall också en alternativ sökväg används (jfr nedan).

Utökad valmöjlighet:Lägg till ett extra villkor för tillträde till den ordinarie sektionen på webbplatsen. Till exempel kanske Du vill reservera normalkatalogen för svenskspråkiga besökare. Välj i så fall "language2" i rullgardinsmenyn. Jfr egenskapsnamnen tillhörande envir-objektet i uaenvirsniff.js.
level2Addon = && envir.

Ange den ibland tillämpade alternativa sökvägen (ej angivbar ifall icke tillämplig)

Några enkla webbläsar- eller datorteknologier lever inte upp till kraven som webbplatsen ställer. Om Du ändå vill tillmötesgå dessa besökare, är en lösning att omdirigera dem till en alternativ sektion.

Katalogen nedan är där det alternativa dokumentet residerar efter det att skriptet exekverat (ifall omdirigering till detsamma tillämpas).
Exempel: http://någon.server.domän/[mapp]

Avancerad valmöjlighet: Tekniskt villkor för att få tillträde till webbplatsen (d.v.s. den alternativa och/eller ordinarie sektionen) blir MozillaToken Sub nummer exami.appCodeNameSub >= som ett resultat av det långt ovan utvalda konceptet. Om Du ändrar siffran till "5", så kommer enbart webbläsare som iakttar standarder att tillåtas på sajten, vilket till exempel skulle innebära att Internet Explorer 5 för Windows uteslöts.

Generera och testa

Låtsas använda Generera testvärden:

När Du är klar med testningarna skall den genererade skriptkoden sparas som en textfil med namnet CustomScriptFile.js eller ett annat namn som Du föredrar. Denna fil anropas i HEAD-skriptet. Om Du planerar för flera omdirigeringar (av olika adresser), så kan Du generera skriptkoden för var och en, ge varje skriptkällfil ett eget namn och samla alla källfiler i samma katalog för bättre överblick. Se bara till att sökvägen i HEAD-skriptanropet stämmer.

Testa textfältets kod: | Nej. Jag börjar om:

Omdirigeringsalternativ — De uteslutna webbläsarna omdirigeras till YourFallBackUponURL.htm 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 standard tillämpar skriptet metoden location = "NågonURL", då webbläsaren omdirigeras till en annan adress, därigenom markerandes en position i webbläsarens lista över besökta hemsidor (history).

Bocka denna ruta 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). Det är rekommenderbart, om skriptet initieras genom en onLoad-händelse, eftersom funktionaliteten hos bakåt-knappen i så fall bevaras.

OK. Ge mig skriptkoden

Sätta allting på plats

Högerklicka och spara den senaste utgåvan av den förberedda skriptkällfilen i en lämplig katalog. Versionsnmret får inte vara lägre än 2.4 om skriptet skall fungera riktigt.

uaenvirsniff.js

När Du har markerat, kopierat och klistrat in den genererade koden (se formuläret ovan) i en skriptkällfil benämnd "CustomScriptFile.js" eller någonting Du föredrar, och publicerat filen på lämplig adress, så är det bara iordningsställandet av primärdokumentet (ingångssidan) kvar. Kontrollera adressen till och namnetCustomScriptFile.js och uaenvirsniff.js. Ersätt ankarnamnet yourFallBackUponURL.htm med Din egen omdirigeringslänk.

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

<BODY onLoad="Init()">
<BUTTON onClick="Init()">

Saken är klar. Inga fler frustrerade nätsurfare kommer att välja en annan webbplats eller t.o.m. skicka irriterad e-post.

Validerad HTML 4.01!

© 2001-2004 Skriptet är FRITT ATT ANVÄNDA om upphovsinformation tillhandahålls.