2009-09-16 1 views
21
deaktivieren

Lassen Sie uns sagen, ich habe HTML-Code wie folgt aus:Wie <noscript> Tag wickeln Inhalt zu verbergen, wenn Sie Javascript

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
This is content. 
</body> 
</html> 

Und ich will ein <noscript> Tag hinzuzufügen. Das heißt, wenn JavaScript deaktiviert ist, wird es als leere Seite angezeigt.

Und nur wenn JavaScript deaktiviert ist, wird es angezeigt "Dies ist Inhaltstext".

Bitte geben Sie mir einige Beispiele zu erreichen. Vielen Dank.

Antwort

4

Es ist ein wenig merkwürdig.

Sie brauchen nicht einmal ein 'noscript' dafür. Sie können nur eine leere erste Seite haben, der ist nur Inhalt ein Javascript ist von der Form:

document.location = '/realpage.htm'; 

Und dann rufen, dass OnLoad, mit jQuery, oder was auch immer. Das bedeutet, wenn der Client keine Skripts hat, gehen sie nirgendwohin, daher bleibt die Seite leer.

Edit:

Beispiel, wie gewünscht:

<html> 
<body onload="document.location = 'realpage.html';"> 
</body> 
</html> 
+0

hallo seidig, umleiten Ich will auch den Weg versuchen. Aber wegen des Mangels an Wissen. Ich weiß nicht wie. Können Sie den Beispielcode für mich zum Testen schreiben? Vielen Dank. –

+0

Danke für Ihre Antwort seidig. Ich habs. –

+0

Sofern Ihre Site einem Benutzer nur den Zugriff auf eine Gateway-Seite ermöglicht, benötigen Sie zwei Seiten für jede Seite, die Sie anzeigen möchten. Ja? Oder haben Sie nur eine Seite Websites. – BillR

4

Der noscript Tag funktioniert umgekehrt. Um den Inhalt sichtbar, wenn Skript aktiviert ist, legen Sie sie in einem Element, das verborgen ist, und zeigen Sie es mit Skript:

<div id="hasScript" style="display:none"> 
This is content 
</div> 
<script>document.getElementById('hasScript').style.display='';</script> 
21

Wrap alle Sie Inhalte innerhalb eines Haupt div mit Anzeige keine und in der onload Funktion ändern die Anzeige zum Blockieren.

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Untitled Document</title> 
</head> 
<body> 
    <div id="divMain" style="display: none"> 
    This is content. 
    </div> 
<noscript> 
    JS not enabled 
</noscript> 
<script> 
    document.getElementById("divMain").style.display = "block"; 
</script> 
</body> 
</html> 
+0

danke es funktioniert. Willst du nur noch eine Frage wissen, die, selbst wenn wir ein noscript-Tag hinzufügen, sie trotzdem den Quellcode anzeigen können? –

+0

Ja, natürlich hat noscript nichts mit der HTML-Erzeugung zu tun. – rahul

+0

ah okie. Danke für Ihre schnelle und schnelle Antwort. –

0

Man könnte so etwas wie

<body id="thebody"> 
    this is content. 
    <script> 
    document.getElementById('thebody').innerHTML = "<p>content when JS is enabled!"; 
    </script> 
</body> 
50

Eine Alternative zu einem JS Ansatz tun, wie vorgeschlagen von Rahul ist ein div in der <noscript> Element anzeigen, die gesamte Seite abdeckt:

<noscript> 
    <div style="position: fixed; top: 0px; left: 0px; z-index: 3000; 
       height: 100%; width: 100%; background-color: #FFFFFF"> 
     <p style="margin-left: 10px">JavaScript is not enabled.</p> 
    </div> 
</noscript> 
+0

Dies ist eine großartige Lösung, danke! – jkraybill

+21

Brilliant! Ich würde es upvote, aber ich habe Javascript nicht aktiviert .. :-) –

+0

Sie haben mein upvote, weil es genau das ist, was ich tun wollte, aber benötigte Hilfe mit den Stilattributen. – TecBrat

2

Diese sollte wirklich funktionieren! ausblenden, um einen Inhalt, wenn Javascript nicht Hinweis aktiviert ist: Sie <noscript> mit <noembed> oder <noframes> auch ersetzen können.

<!-- Normal page content should be here: --> 
Content 
<!-- Normal page content should be here: --> 
<noscript> 
<div style="position: absolute; right: 0; bottom: 0; 
    display: none; visibility: hidden"> 
</noscript> 
<-- Content that should hide begin --> 
**Don't Show! Content** 
<-- Content that should hide begin --> 
<noscript> 
</div> 
</noscript> 
<!-- Normal page content should be here: --> 
Content 
<!-- Normal page content should be here: --> 
-1

Zeigen Sie eine Nachricht Your browser does not support JavaScript! danach

<noscript>Your browser does not support JavaScript! 
    window.location.href = "http://example.com" // redirect to other page 
    </noscript> 
+4

'window.location.href' wird nicht funktionieren, wenn man bedenkt, dass JavaScript deaktiviert ist. –

1

Ich hatte ein sehr Problem auf andere Seite umleiten:

ich die volle Seite zeigen wollte, wenn Javascript aktiviert wurde. Allerdings, wenn Javascript deaktiviert war, wollte ich nicht nur eine "diese Website erfordert Javascript ..." Nachricht anzeigen, aber ich wollte immer noch die Kopfzeile & Fußzeile anzeigen (die in header.inc und footer.inc, genannt von jede Inhaltsseite) meiner Seite (um nett auszusehen).Mit anderen Worten, ich wollte nur den Hauptinhaltsbereich meiner Site ersetzen. Hier ist meine HTML/CSS-Lösung:

header.inc Datei (Standort nicht wichtig):

<noscript> 
    <style> 
     .hideNoJavascript { 
      display: none; 
     } 
     #noJavascriptWarning { 
      display: block !important; 
     } 
    </style> 
</noscript> 

Header-Datei (unten):

<div id="noJavascriptWarning">The Ignite site requires Javascript to be enabled!</div> 
<div class="container-fluid hideNoJavascript"> 
<!-- regular .php content here --> 

CSS-Datei:

#noJavascriptWarning { 
    color: #ed1c24; 
    font-size: 3em; 
    display: none; /* this attribute will be overridden as necessary in header.inc */ 
    text-align: center; 
    max-width: 70%; 
    margin: 100px auto; 
} 

Zusammenfassend ist meine "javascript required" Nachricht nach meiner Standard CSS Regel versteckt. Wenn der Browser das Tag jedoch analysiert, wird die Standardregel außer Kraft gesetzt, was zur Folge hat, dass der Hauptinhalt ausgeblendet und (alles außer Kopf-/Fußzeilen) und die JavaScript-Nachricht angezeigt werden. Funktioniert perfekt ... für meine Bedürfnisse! Hoffentlich jemand anderes findet dies nützlich :-)

Hier sind zwei Screenshots mit Javascript aktiviert/deaktiviert:

enter image description here

enter image description here

0

Sowohl der Stil-Tags und die Meta-Refresh DO innerhalb noscript arbeiten :

<noscript> 

<style>body { display:none; }</style> 

<meta http-equiv="refresh" content="0; url=blankpage.html"> 

</noscript> 

Die erste Zeile wird zeige die aktuelle Seite aber leer an. Die zweite Zeile wird blankpage.html

Verwandte Themen