2016-05-23 4 views
2

Es ist möglich, eine gesamte Seite HTML zu deaktivieren, wenn die js im Browser des Benutzers deaktiviert ist?
EDIT:
Vielen Dank für die Antworten und Kommentare! Was ich meine, ist: Ich möchte, dass die Seite in diesem Fall durch etwas anderes ersetzt wird, wie ein Bild.Verhindern, eine Seite mit js zu laden gesperrt

+0

nicht gerade ein Duplikat, aber dieser Thread wird Ihre Frage beantworten: http://stackoverflow.com/questions/6724515/what-is-the-purpose-of-the-html-no-js- Klasse – durbnpoisn

+0

Meinst du, einen Link zu Seite zu deaktivieren? Oder was meinst du genau mit "disable"? –

+0

Sie werden wahrscheinlich die Seite benötigen, um den ersetzten Inhalt standardmäßig mit einem JS-Aufruf zu rendern, der diesen für den echten Inhalt austauscht. Wenn JS deaktiviert ist, wird der Aufruf nicht durchgeführt und der Failover-Inhalt wird angezeigt. Wenn der JS-Aufruf erfolgreich ist, wird der entsprechende Inhalt angezeigt. – theaccordance

Antwort

2

Das Tag noscript definiert einen alternativen Inhalt für Benutzer, die Skripts in ihrem Browser deaktiviert haben oder über einen Browser verfügen, der kein Skript unterstützt.

Sie können in Ihrem HTML Körper etwas tun, um anzuzeigen, was Bild, das Sie anzeigen möchten:

<noscript> 
    <style type="text/css"> 
     .wrapper {display:none;} 
    </style> 
    <div> 
     <img src="src/to/your/image.png" alt="You don't have javascript enabled"> 
    </div> 
</noscript> 

Die CSS innerhalb der HTML-Inhalt innerhalb der wrapper Klasse noscript-Tag verstecken.

+0

Vielen Dank! – CCT

0

Nicht dass ich mir dessen bewusst bin. Irgendwo müssen Sie dem Browser mitteilen, dass er die Aktion/das Ereignis, die damit verknüpft ist, verhindern soll, zB false zurückgeben, was eine Aufgabe für Javascript ist. Ich kann bis zu zwei Alternativen kommen:

Stellen Sie alle Anker Attrappen und korrigieren, wenn JS eingeschaltet ist:

<a href="#" data-href="/actual-url">foo</a> 
$('a').each(function(){ this.href = $(this).data("href");} // * jQuery for simplicity 

eine Schicht auf der Oberseite des Ankers Stoßen, die Sie mit JS entfernen .

.BlockedAnchor a{ position: relative; } 
.BlockedAnchor a:before{ 
    position: absolute; 
    display: block; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
} 
$('body'removeClass("BlockedAnchor");