webForumDet fria alternativet

Redirect om javascript är avstängt i webläsaren

JavaScript

13 svar · 1 727 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Frågan#1

Hej,

Jag har en sida med en massa javascriptbaserade funktionen som formulärvalidering och en massa funktioner som triggas av onClick etc...

Är det någon som har något knep för att hänvisa besökaren till en statisk websida om javascript är avstängt i webläsaren?

:stud

Medlem sedan jan. 2005953 inlägg
#2
<noscript>
<meta http-equiv="refresh" content="0;url=no-js.htm">
</noscript>

Så borde ju fungera

Medlem sedan juni 20014 290 inlägg
#3

Ett verkligt fulhack är att använda följande:

<noscript><meta http-equiv="REFRESH" content="0;url=nojavascript.html"></noscript>

Nackdelen är att den följer inte standarden och inte garanterad att fungera, men är den lösningen som farbror googel hittade.

Bättre att avända noscript taggen för att göra en "blaffa" på dina sida om att den kräver javascript.

Medlem sedan dec. 20051 056 inlägg
#4

Det där duger alldeles utmärkt som lösning. Blir betydligt bättre.

Märkligt att det inte finns en standardiserad lösning. Mycket funktionalitet bygger ju idag på javascript. Hur fungerar tex ajax lösningar med javascript avstängt?

Gillade den här sidan. I princip så hänvisar jag bara till den på min redirect sida.

http://www.enable-javascript.com/

Medlem sedan dec. 20051 056 inlägg
#5

Vad är en lämplig lösning för syntaxkontrollering av ett formulär idag?

Jag har alltid använt mig av javascript för det och inte brytt mig så mycket om de som inte har det påslaget. Men jag har nu problem med en website som postar data utan att följa syntaxkontrollen. När jag provade slå av javascript i webläsaren så fungerade allt ok och data sparades med felaktig syntax.

Medlem sedan juni 20019 519 inlägg
#6

Mattias Nordin skrev:

Märkligt att det inte finns en standardiserad lösning. Mycket funktionalitet bygger ju idag på javascript. Hur fungerar tex ajax lösningar med javascript avstängt?

Beror ju helt och hållet på AJAX lösning, en fallback är ju inte direkt svårt att lösa (beroende på vad det är för AJAX lösning), men om tid finns se till att koden fungera utan JS och senare kör progressive enhancement

Medlem sedan juni 20019 519 inlägg
#7

Mattias Nordin skrev:

Vad är en lämplig lösning för syntaxkontrollering av ett formulär idag?

Jag har alltid använt mig av javascript för det och inte brytt mig så mycket om de som inte har det påslaget. Men jag har nu problem med en website som postar data utan att följa syntaxkontrollen. När jag provade slå av javascript i webläsaren så fungerade allt ok och data sparades med felaktig syntax.

Lägg ALLTID in en server kontroll att datan som matas in är korrekt, litar aldrig på en klient+användare ;)

Medlem sedan dec. 20051 056 inlägg
#8

Om tid finns är den avgörande faktorn =)

Som hobbyprogrammerare på en privat site så hade det underlättat om jag kunde bestämma att enbart javascriptaktiverade klienter hade tillträde till websidan. På så sätt skulle jag slippa göra validering av postad data både på klienten och på servern.

Något jag har funderat på att göra är att lägga till ett hidden fält i mitt formulär där value sätts av ett javascript. På serversidan kan jag testa om det värdet finns. Om ej så kan jag hänvisa till en websida där jag klagar på att javascript inte är påslaget.

Medlem sedan juni 20019 519 inlägg
#9

Och som utvecklare så kan jag komma förbi detta enkelt (tänk dig firebug), så nej det är inte en bra lösning. Lös det på Server sidan om du inte vill att användaren skall få posta text på ett speciellt sätt. Kan ju inte vara så svårt att konvertera JS kod till vilket server språk du kör.

Medlem sedan dec. 20051 056 inlägg
#10

Hmmm... förstår vad du säger.

Kanske ska prioritera servervalideringen istället. Jag orkar nog inte göra båda, i alla fall inte nu. Finns annat att prioritera =)

Vad tror ni är den främsta anledningen till att man vill stänga av javascript?

Medlem sedan juni 20019 519 inlägg
#11

Enheter som inte har stöd för javascript (vissa mobiltelefoner), säkerhet, snabbhet( stänger av alla externa källor som bilder/css/osv) finns en hel del andra anledningar man kanske är tvingad att göra för att man inte har något annat val.

Medlem sedan juni 2006244 inlägg
#12

Som voigtann säger så har man som användare teoretiskt full kontroll över allt som händer på klientsidan. All Javascript-kod är fullt åtkomlig för mig som besökare på din sida. Det innebär att jag även kommer åt alla databaser, lösenord, osv som du anropar öppet i Javascript.

Javascript/AJAX bör bara användas som en underlättande åtgärd för att presentera och kontrollera data innan/efter den skickas/hämtas från servern. Javascript bör bara ha tillgång till den data som användaren naturligt har direkt tillgång till, t.ex sina egna uppgifter i ett formulär, knapptryckningar, text och bilder etc.
Som att kontrollera om epostadressen innehåller @ innan formuläret skickas (till servern), lista data (från servern) i en tabell, etc.

Tänk att Javascript aldrig ska veta mer än användaren bör få veta, så är du safe.

Medlem sedan aug. 20068 090 inlägg
#13

Mattias Nordin skrev:

Märkligt att det inte finns en standardiserad lösning. Mycket funktionalitet bygger ju idag på javascript. Hur fungerar tex ajax lösningar med javascript avstängt?

Ajax funkar inte alls utan js eftersom det är en kombo av js och php.

Det är bl.a. därför man imho måste "uppfostra" sina användare lite. Jag kör t.ex. med följande för att få folk att fatta varför en sida ser ut som skit eller inte funkar i IE6:

<!--[if IE 6]>
<div id="ie6">Din webbläsare är alldeles
för gammal och klarar inte att visa webbplatser korrekt.<br /> Därmed missar du mycket som andra ser tack vare
att dom har nyare programvara.<br /> Ladda ner och installera en ny. Det kostar inte ett endaste öre.<br />
Välj mellan t.ex. <a href="http://www.microsoft.com/sverige/windows/downloads/ie/getitnow.mspx"
target="_blank">Internet Explorer</a> eller <a href="http://sv-se.www.mozilla.com/sv-SE/"
target="_blank">Firefox</a> (rekommenderas).</div><![endif]-->

På samma sätt gör jag om webbplatsen använder js:

<noscript><div style="color:#fff; background:red; padding:30px;">Din webbläsare har inte stödet för javascript aktiverat och viktiga funktioner på webbplatsen kommer därför inte att fungera. Aktivera javascript och ladda om sidan.</div></noscript>

Gör man detta så har man i alla fall talat om för användaren var "felet" ligger och ger hoonom/henne en chans att rätta till (han/hon kan ju mycket väl råkat ut för samma problem flera gånger på andra webbplatser utan att förstå varför.)

Medlem sedan juni 20014 290 inlägg
#14

Ajax har inget med php att göra, ajax kan anropa skript som finns på servern, dessa skript kan vara skrivna i valfritt språk alt. bara hämtar en vanlig textfil.

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)