[JS,Demo] Cum să verifici dacă JavaScript a fost dezactivat

JavaScript / Ajax etc.

[JS,Demo] Cum să verifici dacă JavaScript a fost dezactivat

Postby Dexter » 09 Jan 2010, 18:18

Bună ziua, am să vă arăt o metodă simplă de a detecta dacă JavaScript funcţionează într-o pagină web, folosind Flash.
Scopul este de a afla dacă JavaScript a fost dezactivat în timp ce pagina era activă.


Pentru început, am folosit un script de pe http://www.permadi.com/tutorial/flashjscommand/

  1. <script type="text/javascript">
  2. function getFlashMovieObject(movieName)
  3. {
  4.   if (window.document[movieName])
  5.   {
  6.       return window.document[movieName];
  7.   }
  8.   if (navigator.appName.indexOf("Microsoft Internet")==-1)
  9.   {
  10.     if (document.embeds && document.embeds[movieName])
  11.       return document.embeds[movieName];
  12.   }
  13.   else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  14.   {
  15.     return document.getElementById(movieName);
  16.   }
  17. }
  18. </script>


Apoi, am inserat flash-ul în pagină, astfel:
  1. <embed src="nojs.swf" id="myFlashMovie" name="myFlashMovie"></embed>


Fişierul flash conţine următoarele script-uri:

Frame 1 şi 4: primul script
  1. msg="notOK";
  2. getURL('javascript&#058;getFlashMovieObject("myFlashMovie").SetVariable("/:msg", "OK");void(0)');


Frame 3 şi 6: al doilea script
  1. if(msg=="OK")
  2.     gotoAndPlay(1);
  3. else gotoAndPlay(4)


Drept rezultat, frame-urile 1-3 se vor repeta cât timp JavaScript este activat, iar 4-6 cât timp JavaScript este dezactivat (afişând un mesaj către user).


Observaţii:
  • Este important ca între primul şi al doilea script flash să existe cel puţin un frame liber
  • Dacă doriţi să redirecţionaţi userul pe o altă pagină, când JavaScript a fost dezactivat, înlocuiţi script-ul din frame-ul 4.
  • Setarea "frames per second" a fişierului SWF, influenţează numărul de teste pe secundă/minut.
  • A se folosi doar pe Web (http(s)). Executat local, script-ul poate genera un avertisment din partea browserului.


[Download demo]
2p / 1 votes
User avatar
Dexter
Word
 
Joined: 04 Jan 2010
Location: Secret Lab
Status: 44.5

Re: [JS,Demo] Cum să verifici dacă JavaScript a fost dezactivat

Postby DarkByte » 09 Jan 2010, 18:23

Nice work :)

O sa-l testez cat de curand :)

Thanks.
0,0p / 0 votes
User avatar
DarkByte
11011011
 
Joined: 29 Dec 2009
Status: 136

Re: [JS,Demo] Cum să verifici dacă JavaScript a fost dezactivat

Postby Dexter » 09 Jan 2010, 18:45

Am setat "FPS" la 0.5, aşa că verificarea se face odată la câteva secunde.
Pe Internet Explorer 6, când deschid o fereastră de dialog, flash-ul detectează că JS a fost dezactivat.
Pe Chrome 3.0 se pare că JavaScript nu se poate dezactiva decât cu linie de comandă, după ce toate ferestrele au fost închise. (http://nethead.blogspot.com/2008/09/google-chrome-how-to-disable-javascript.html)
Funcţionează corect pe Firefox 3.5.6 însă nu am testat pe Safari şi Opera.
0,0p / 0 votes
User avatar
Dexter
Word
 
Joined: 04 Jan 2010
Location: Secret Lab
Status: 44.5

Re: [JS,Demo] Cum să verifici dacă JavaScript a fost dezactivat

Postby Zatarra » 10 May 2010, 15:11

Nu mai bine folosesti <noscript>? intreb si eu doar..

Here is an example:

  1.  
  2. <html>
  3. <body>
  4. <script type="text/javascript">
  5. document.write("Your Javascript is enabled!");
  6. </script>
  7. <noscript>
  8. Your Javascript is not enabled!
  9. </noscript>
  10. </body>
  11. </html>
  12.  
0,0p / 0 votes
ReSpEcT
User avatar
Zatarra
Byte
 
Joined: 01 Jan 2010
Location: /etc/sudoers
Status: 12.5

Re: [JS,Demo] Cum să verifici dacă JavaScript a fost dezactivat

Postby Dexter » 10 May 2010, 15:22

Dacă citeşti cu atenţie rândul al doilea din postul meu iniţial, vezi că scopul aplicaţiei este (şi citez...):
..."de a afla dacă JavaScript a fost dezactivat în timp ce pagina era activă."

Bineînţeles că nu am uitat de tagul <noscript>, dar aplicaţiile DHTML îşi pierd funcţionalitatea şi toate informaţiile atunci când se dezactivează JavaScript, apoi singura posibilitate de a relua execuţia lor presupune reîncărcarea paginii.
0,0p / 0 votes
User avatar
Dexter
Word
 
Joined: 04 Jan 2010
Location: Secret Lab
Status: 44.5

Re: [JS,Demo] Cum să verifici dacă JavaScript a fost dezactivat

Postby Zatarra » 11 May 2010, 01:19

Scuze.. mi-a scapat partea cu "activa", cu toate ca se putea abstractiza toata chestia. Anyway ii folositor pentru cei interesati de partea aceasta de JS.
0,0p / 0 votes
ReSpEcT
User avatar
Zatarra
Byte
 
Joined: 01 Jan 2010
Location: /etc/sudoers
Status: 12.5


Return to Scripting

Who is online

Users browsing this forum: No registered users and 0 guests