Testa om JavaScript är aktiverat

Permalänk
Avstängd

Testa om JavaScript är aktiverat

Hej

Jag undra om man kan kontrollera om den som använde min hemsida har javaScript aktiverat.
Det jag vill göra är. Om användaren inte har JS aktiverat så ska användaren komma till en sida på hemsidan, om han däremot har JS aktiverat så ska an JS kod köras. Går det att göra så? I så fall hur?

Mvh Andreas

Permalänk
99:e percentilen

Det är inte rekommenderat att göra så. Jag skulle rekommendera dig att försöka hitta en bättre lösning.

Annars kan du

<script type="text/javascript"> <!-- window.location = "http://google.com"; // send visitor to google.com //--> </script>

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Avstängd
Skrivet av Zuggmate:

Det är inte rekommenderat att göra så. Jag skulle rekommendera dig att försöka hitta en bättre lösning.

Annars kan du

<script type="text/javascript"> <!-- window.location = "http://google.com"; // send visitor to google.com //--> </script>

Vad menar du med det där??

Jag ska göra något liknande som det är här sweclockers när man trycker på logga in knappen. Om man trycker på knappen ska det komma upp en ruta som ligger mitt på hemsidan. Men om man inte har JS aktiverat så ska man länkas till en annan sida. Hur kan jag göra det utan att använda JavaSrcript?

Permalänk
99:e percentilen
Skrivet av Pandy95:

Vad menar du med det där??

Jag ska göra något liknande som det är här sweclockers när man trycker på logga in knappen. Om man trycker på knappen ska det komma upp en ruta som ligger mitt på hemsidan. Men om man inte har JS aktiverat så ska man länkas till en annan sida. Hur kan jag göra det utan att använda JavaSrcript?

<div id="loginPopup" style="display: none;">Blabla</div> <a href="sida-som-man-kommer-till-utan-js.html" id="loginButton">Logga in</a> <script type="text/javascript"> <!-- function showPopup() { document.getElementById('loginPopup').style.display = "block"; var e = window.event; e.preventDefault(); return false; } document.getElementById('loginButton').addEventListener('click', showPopup, false); //--> </script>

Är på iPaden, så kan ej testa om det fungerar. Dessutom har jag, som du ser, för enkelhetens skull blandat HTML, JavaScript och CSS, men du bör förstås hålla isär dem genom att lägga CSSen i stylesheetet och JavaScript-koden i en scriptfil.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Avstängd

Kommer alltid till den sidan som jag ska komma till om jag har stänkt av JS
Knappen

<a href="http://www.google.se" id="login" class="button" >Logga in</a>

Sidan som ska visas

<div id="login_page"> Text </div>

css

#login_page{ width:200px; height:200px; display:none; }

JavaScript kod

function showPopup() { document.getElementById('login_page').style.display="block"; var e = window.event; e.preventDefault(); return false; } document.getElementById('loginButton').addEventListener('click', showPopup, false);

Permalänk
99:e percentilen
Skrivet av Pandy95:

Kommer alltid till den sidan som jag ska komma till om jag har stänkt av JS
Knappen

function showPopup() { document.getElementById('login_page').style.display="block"; var e = window.event; e.preventDefault(); return false; } document.getElementById('loginButton').addEventListener('click', showPopup, false);

Sorry, jag hade skrivit fel. Den här koden bör fungera:

function showPopup(e) { document.getElementById('loginPopup').style.display = "block"; e.preventDefault(); return false; } document.getElementById('loginButton').addEventListener('click', showPopup, false);

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk

Antingen så får du bygga så siten går att använda utan js, eller om det är omöjligt och man måste komma till en annan del av siten så kanske du kan använda:

<noscript> Du har inte javascript aktiverat. Aktivera det eller gå <a href="http://www.example.com">hit</a> för använda sidan utan javascript </noscript>

Permalänk
Inaktiv

Testa med Modernizr. Finns endel sätt där som är smarta (tex. en no-js klass på html elementet om JS inte är aktiverat). Nu kan Modernizr kolla en hel del andra saker med, så kanske är lite överflödigt.

Permalänk
Avstängd
Skrivet av Zuggmate:

Sorry, jag hade skrivit fel. Den här koden bör fungera:

function showPopup(e) { document.getElementById('loginPopup').style.display = "block"; e.preventDefault(); return false; } document.getElementById('loginButton').addEventListener('click', showPopup, false);

Tack det fungerar nu. Det ända som inte fungerar är i IE med det har väll med att action event inte fungerar lika i IE med det kan jag lös själv. Tack ni andra också men jag kör nog på Zuggmate förslag.

Permalänk
99:e percentilen
Skrivet av Pandy95:

Tack det fungerar nu. Det ända som inte fungerar är i IE med det har väll med att action event inte fungerar lika i IE med det kan jag lös själv.

Jag tror det beror på att IE inte stöder addEventListener(), vilket är ett solklart skäl till att medvetet strunta i IE och rekommendera att ens besökare laddar ner en webbläsare istället.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Avstängd

Jag har löst problem med med IE. Jag har skrivit en kod som ska kunna ända css koden i JS . Den borde fungera i alla webbläsare. Men det gör den inte den fungerar inte i chrome.

Varför gör den inte det?

HTML: länk

<html> <head> <link rel="stylesheet" type="text/css" href="test.css" /> </head> <body> <input id="röd" type="submit" value="röd"/> <input id="grön" type="submit" value="grön"/> <div id="rekt"> </div> <script type="text/javascript" src="test.js"></script> </body> </html>

Dold text

CSS: för fönstret

#rekt{ display:block; border:5px solid red; width:100px; height:100px; }

Dold text

JavaScript: som ska göra så att fönstret visas och döljs

var CB = { addEvent : function(element, event, action){ if(element.addEventListener){ element.addEventListener(event, action, false); } else{ element.attachEvent("on"+event, action); } }, getCSS : function(rule){ if(document.styleSheets[0].cssRules){ for(var i = 0;i < document.styleSheets.length;i++){ for(var x = 0;x < document.styleSheets[i].cssRules.length;x++){ if(document.styleSheets[i].cssRules[x].selectorText == rule){ return document.styleSheets[i].cssRules[x]; } } } }else{ for(var i = 0;i < document.styleSheets.length;i++){ for(var x = 0;x < document.styleSheets[i].rules.length;x++){ if(document.styleSheets[i].rules[x].selectorText == rule){ return document.styleSheets[i].rules[x]; } } } } } } function showLogin(e){ var x = CB.getCSS("#rekt"); x.style.border="5px solid red"; } function hideLogin(e){ var x = CB.getCSS("#rekt"); x.style.border="5px solid green"; } var röd = document.getElementById('röd'); CB.addEvent(röd, "click", showLogin); var grön = document.getElementById("grön"); CB.addEvent(grön, "click", hideLogin);

Dold text
Permalänk
99:e percentilen
Skrivet av Pandy95:

JavaScript: som ska göra så att fönstret visas och döljs

var CB = { addEvent : function(element, event, action){ if(element.addEventListener){ element.addEventListener(event, action, false); } else{ element.attachEvent("on"+event, action); } }, getCSS : function(rule){ if(document.styleSheets[0].cssRules){ for(var i = 0;i < document.styleSheets.length;i++){ for(var x = 0;x < document.styleSheets[i].cssRules.length;x++){ if(document.styleSheets[i].cssRules[x].selectorText == rule){ return document.styleSheets[i].cssRules[x]; } } } }else{ for(var i = 0;i < document.styleSheets.length;i++){ for(var x = 0;x < document.styleSheets[i].rules.length;x++){ if(document.styleSheets[i].rules[x].selectorText == rule){ return document.styleSheets[i].rules[x]; } } } } } } function showLogin(e){ var x = CB.getCSS("#rekt"); x.style.border="5px solid red"; } function hideLogin(e){ var x = CB.getCSS("#rekt"); x.style.border="5px solid green"; } var röd = document.getElementById('röd'); CB.addEvent(röd, "click", showLogin); var grön = document.getElementById("grön"); CB.addEvent(grön, "click", hideLogin);

Dold text

Det enda jag kan se när jag skummar igenom koden är att du har variabelnamn som innehåller "ö", vilket KANSKE inte är tillåtet, och att du skriver 5px solid green istället för 5px green solid osv.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Avstängd

Har hittat felet men vet inte hur jag ska lösa det.
Felet är att styleSheets[i] fungerar inte när jag använde ett externt css dokument då kommer JS inte att hitta css filen. Men om jag skriver css en direkt under head tagen med en style tag så kommer det att fungera.

OBS! Det är bara i chrom det blir problem i alla andar webbläsare fungerar det.

Någon som vet hur jag ska lösa det?

var CB = { addEvent : function(element, event, action){ if(element.addEventListener){ element.addEventListener(event, action, false); } else{ element.attachEvent("on"+event, action); } }, getCSS : function(rule){ if(document.styleSheets[0].cssRules]){ for(var i = 0;i < document.styleSheets.length;i++){ for(var x = 0;x < document.styleSheets[i].cssRules.length;x++){ if(document.styleSheets[i].cssRules[x].selectorText == rule){ return document.styleSheets[i].cssRules[x]; } } } }else{ for(var i = 0;i < document.styleSheets.length;i++){ for(var x = 0;x < document.styleSheets[i].rules.length;x++){ if(document.styleSheets[i].rules[x].selectorText == rule){ return document.styleSheets[i].rules[x]; } } } } } } function showLogin(e){ var x = CB.getCSS("#rekt"); x.style.border="5px solid red"; } function hideLogin(e){ var x = CB.getCSS("#rekt"); x.style.border="5px solid green"; } var röd = document.getElementById('röd'); CB.addEvent(röd, "click", showLogin); var grön = document.getElementById("grön"); CB.addEvent(grön, "click", hideLogin);

Dold text