Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Im Template prüfen ob Javascript aktiv

    Angeal

    • Fördermitglied
    • Beiträge: 411
    • Geschlecht:
    Im Template prüfen ob Javascript aktiv
    am: 15. August 2013, 18:38:32
    Hallo Zusammen,
    ich bin grad ein wenig am basteln.
    Und zwar habe ich eine Box in meinem modified Template die nur ordentlich funktioniert wenn Javascript aktiv ist. Wenn es nicht aktiv ist, gibt es einen Fehler und man kann quasi gar nicht mehr im Shop einkaufen.

    Da es sich hierbei nur um ein Gimmick handelt ist es nicht zwangsweise nötig und darf daher nicht geladen werden, wenn Javascript abgeschaltet ist.

    Nun ist die Box, wie auch die anderen, in der index.html per {box_NAME} eingebunden.

    Wie setze ich hier (vielleicht mit Hilfe von Smarty) eine if-Abfrage mit der ich prüfen kann ob Javascript aktiviert ist?
    Wenn es nicht aktiviert ist, dann soll {box_NAME} nämlich nicht geladen werden.

    Linkback: https://www.modified-shop.org/forum/index.php?topic=27319.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.999
    • Geschlecht:
    Re: Im Template prüfen ob Javascript aktiv
    Antwort #1 am: 15. August 2013, 19:44:48
    Die einfachste und technisch modernste Variante wäre die auf HTML5 umzustellen (was ohnehin gut wäre).
    Dann kannst du dem html-tag eine Klasse js (bei aktiviertem Javascript) oder no-js (bei deaktiviertem Javascript) vergeben
    und kannst das Erscheinen der Box über CSS steuern.

    Beispiel:
    Code: XML  [Auswählen]
    <!DOCTYPE html>
    <html class="no-js" dir="ltr" lang="de">
    <head>
    <script type="text/javascript">with(document.documentElement){className=className.replace(/\bno-js\b/,'js')}</script>

    Damit wird die Klasse no-js in die Klasse js verwandelt wenn Javascript aktiviert ist.

    Nun der Box einen umgebenden Container mit einer Klasse geben  (oder der Box selbst eine Klasse geben) und per CSS anzeigen oder eben nicht:
    Code: CSS  [Auswählen]
    .no-js .DEINE_KLASSE {display:none;}

    Gruß,
    noRiddle

    Marcus Kreusch

    • Fördermitglied
    • Beiträge: 312
    • Geschlecht:
    Re: Im Template prüfen ob Javascript aktiv
    Antwort #2 am: 15. August 2013, 20:06:41
    Hallo,

    auch für ältere Browser ist die Lösung von noRiddle ja gut umsetzbar...

    Dafür in der /templates/TEMPLATENAME/javascript/general.js.php nach
    Code: Javascript  [Auswählen]
    <script src="<?php echo 'templates/'.CURRENT_TEMPLATE; ?>/javascript/jquery.js" type="text/javascript"></script>
    das hier einfügen:
    Code: Javascript  [Auswählen]
    <script type="text/javascript">
    $(document).ready(function(){
        $('.hideWithoutJS').show();
    });
    </script>

    Und das hier ins Stylesheet:

    Code: CSS  [Auswählen]
    .hideWithoutJS{
        display:none;
    }

    Dann kannst du allem, was ohne JS nicht sichtbar sein soll, die Klasse hideWithoutJS geben :-)

    Reicht dir das?
    Oder gibt es einen Grund, die Box gar nicht erst einzubinden?
    Auch dafür ließe sich eine relativ leichte Lösung finden...

    Viele Grüße
    Marcus

    Angeal

    • Fördermitglied
    • Beiträge: 411
    • Geschlecht:
    Re: Im Template prüfen ob Javascript aktiv
    Antwort #3 am: 16. August 2013, 09:16:23
    Besten Dank :)
    Das hat mir sehr weitergeholfen :)
    8 Antworten
    6249 Aufrufe
    13. Dezember 2011, 22:35:01 von p3e
    1 Antworten
    1826 Aufrufe
    22. November 2012, 15:52:13 von sorny
    3 Antworten
    2234 Aufrufe
    19. Januar 2017, 19:22:38 von awids
    1 Antworten
    2724 Aufrufe
    17. Februar 2014, 09:53:04 von Modulfux
               
    anything