• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

wenn js inaktiv dann include

Status
Für weitere Antworten geschlossen.

Picco

Neues Mitglied
hi,
ich möchte gerne das einige seiten per php nur dann importiert werden wenn js deaktiviert ist.

wie?

(kenn mich nicht mit js aus)
 
Werbung:
Das geht nicht. php ist eine serverseitige Sprache, JavaScript ist clientseitig.

Gegenfrage: was willst Du genau erreichen? Evtl. gibt es einen anderen Weg ...
 
Du kannst einen kleinen Hack benutzen, den ich benutze um zu überprüfen, ob JS aktiviert ist oder nicht.

Erstelle ein 1*1 px großes durchsichtiges Bild.

In einem <noscript></noscript> setzt du <img src="bild.php?js=0" alt="JS nicht aktiviert" width="1" height="1" />

Ansonsten:
PHP:
<script>
window.onload = function() {
  var element = document.createElement("img");
  element.src="bild.php?js=1";
  element.alt= "JS aktiviert";
  
  document.body.appendChild(element);
}
</script>

Und in bild.php:

PHP:
session_start();
if (isset($_GET['js']) && ($_GET['js']=='1' || $_GET['js'] == '0')) {
  $js = $_GET['js'];
  $_SESSION['js'] = intval($js);
} else {
  session_destroy();
}
$handle = fopen('unsichtbaresbild.gif','r+');
echo fread($handle,filesize('unsichtbaresbild.gif'));
fclose($handle);
 
Werbung:
<noscript> ist nicht w3c konform DARF ich also nicht nutzen

also wenn etwas angeklickt wird wird eine seite mit einer beschreibung in einer art lightbox geladen wenn nicht geht der link normal im selben tap auf
nun soll in der lightbox keine navi angezeigt werden (und generell andere head und foot dateien includiert werden) und ohne js soll alles ganz normal wie auf allen andern seiten eingebaut werden
 
Hab grade mal getestet, ob der w3c-validator meckert bei no script. Bei folgendem script meckert er nicht rum (Außer 2 Warnings die halb so wild sind)

HTML:
<!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>
  <script type="text/javascript">
    window.onload = function(){}
  </script>
<title>Conforming XHTML 1.0 Transitional Template</title>

</head>

<body>
  <noscript>
    <p>HIII</p>
  </noscript>
</body>

</html>
Edit:

Es gibt mit der Lightbox bestimmt auch die Möglichkeit die Links von außen anzusteuern anstatt den Code direkt innerhalb des Links zu definieren. So mache ich es immer bei meinen Projekten. So wirkt der Javascript Teil hakt wenn er aktiviert und ansonsten halt nicht.
Also brauchst du das alles nicht wenn du JS komplett von HTML trennst :)
 
warnungen sind auch nicht erlaubt
es MUSS w3c konform sein 0fehler 0warnungen leider -.-
 
Werbung:
also wenn etwas angeklickt wird wird eine seite mit einer beschreibung in einer art lightbox geladen wenn nicht geht der link normal im selben tap auf
nun soll in der lightbox keine navi angezeigt werden (und generell andere head und foot dateien includiert werden) und ohne js soll alles ganz normal wie auf allen andern seiten eingebaut werden

Stichwort Unobtrusive JavaScript. Erstell die Seite erst so, wie sie ohne JS funktionieren soll, und füge dann per JavaScript die entsprechend erweiterte Funktionalität hinzu (etwa durch Ergänzung von JS-Code im onclick-Ereignis der entsprechenden Links, die sich in der Lightbox öffnen sollen).
 
Stichwort Unobtrusive JavaScript. Erstell die Seite erst so, wie sie ohne JS funktionieren soll, und füge dann per JavaScript die entsprechend erweiterte Funktionalität hinzu (etwa durch Ergänzung von JS-Code im onclick-Ereignis der entsprechenden Links, die sich in der Lightbox öffnen sollen).
geht ja auch ohne das mit dem fenster das mit js aufgeht ist eine erweiterung die ich machen will ohne is es eben langweilig aber irgendwie muss das doch gehen

@Gilles ich probiere es nochmal aber bei noscripts pets w3c eigentlich
 
Werbung:
<noscript> ist nur in (X)HTML5 nicht erlaubt. In jeder anderen Version ist es erlaubt.

Und wenn es dir so nicht gefällt (was ich aus deiner Aggressivität herauslese), kannst du immer noch per Ajax einen Request machen oder einen Cookie setzen, der dann ausgewertet wird.
 
Nur im Firefox getestet.

Code:
<?php

if (isset($_GET['p'])) {
    switch ($_GET['p']) {
        case 'a':
            echo 'Eine Seite';
            break;
        case 'b':
            echo 'Eine andere Seite';
            break;
        case 'c':
            echo 'Noch eine Seite';
            break;
        default:
            echo 'Nicht gefunden';
            break;
    }

    if (isset($_GET['ajax'])) {
        echo ' (via Ajax)';
    }

    exit;
}

?>

<!DOCTYPE html>

<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Demoseite</title>
    </head>

    <style type="text/css">
        #overlay {
            background: #222;
            opacity: 0.7;
            z-index: 10;
            width: 100%;
            height: 100%;
            position: fixed;
            display: none;
            top: 0;
            left: 0;
        }

        #lightbox {
            position: fixed;
            background: #fff;
            width: 300px;
            height: 300px;
            display: none;
            border: 5px solid #f00;
            padding: 10px;
            left: 100px;
            top: 100px;
            z-index: 20;
        }
    </style>

    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript">
        // <![CDATA[
        $(document).ready(function() {
            $('body').append('<div id="overlay"></div>')
                     .append('<div id="lightbox"></div>');

            $('#nav a').click(function(event) {
                event.preventDefault();

                $.get('index.php' + $(this).attr('href') + '&ajax', function(data) {
                    $('#lightbox').html(data).css('display', 'block');
                    $('#overlay').css('display', 'block').click(function() {
                        $('#lightbox, #overlay').css('display', 'none');
                    });
                });
            });
        });
        // ]]>
    </script>

    <body>
        <ul id="nav">
            <li><a href="?p=a">Link</a></li>
            <li><a href="?p=b">Link</a></li>
            <li><a href="?p=c">Link</a></li>
        </ul>
    </body>

</html>
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben