N'Abend ins Forum,
ich habe ein jQuery UI Dialog auf meiner Startseite, der Texte aus zwei Contentelementen enthält. Das funktioniert auch fein, soweit Javascript im Browser aktiviert ist. Es gibt aber immer wieder User, die Javascript deaktivieren. Dann werden die Inhalte einfach unter die Homepage geschrieben, was nicht wirklich prickelnd aussieht.
Nun möchte ich für solche User ne Meldung ausgeben, dass sie Javascript deaktiviert haben und somit nicht alle Inhalte der Homepage sehen. Und der Text des Contentelements soll dann einfach nicht erscheinen.
Die Scripts habe ich so eingebaut.
[globalVar = TSFE:id=1]
page.includeCSS.file4 = fileadmin/jquery/css/smoothness/jquery-ui-1.8.13.custom.css
page.includeCSS.file4.media = screen
page.headerData.5 = TEXT
page.headerData.5.value = <script type="text/javascript" src="fileadmin/scripts/popup.js"></script>
page.headerData.6 = TEXT
page.headerData.6.value = <script type="text/javascript" src="fileadmin/jquery/js/jquery-ui-1.8.13.custom.min.js"></script>
[global]
Den Inhalt lade ich so in den Dialog
[globalVar = TSFE:id=1]
page.20 = COA
page.20 {
10 = RECORDS
10 {
dontCheckPid = 1
tables = tt_content
source = tt_content_14
}
20 = RECORDS
20 {
dontCheckPid = 1
tables = tt_content
source = tt_content_16
}
wrap = <div id="info"> | </div>
}
[global]
Wo gebe ich nun den <noscript>Bereich an bzw. geht das mit <noscript> hier überhaupt?
Danke für ein bisschen Input und schönen Abend noch.
Gruß - mimii
N'Abend nochmal,
ich habe viel recherchiert, aber leider nichts passendes zum Thema gefunden. Wie krieg ich geregelt, dass das TS nur bei aktiviertem Javascript ausgeführt wird? Mein Versuch so
[globalVar = TSFE:id=1]
page.20 = COA
page.20 {
5 = TEXT
5.value = <script type="text/javascript">
10 = RECORDS
10 {
dontCheckPid = 1
tables = tt_content
source = tt_content_14
}
20 = RECORDS
20 {
dontCheckPid = 1
tables = tt_content
source = tt_content_16
}
wrap = <div id="info"> | </div>
25 = TEXT
25.value = </script>
30= HTML
30.value = <noscript><p>Kein Javascript aktiviert</p></noscript>
}
[global]
geht so leider nicht. Muss ich vielleicht ne Browserweiche vorschalten?
Danke für n bisschen Hilfe und Gruß
mimii
Ist jetzt zwar nicht professionell aber setzt doch
den info-Container per CSS auf
#info { display: none; }
und lege eine Javascript-Function an die per onload gestartet wird und das wieder sichtbar macht.
( inhalt meiner scripts.js )
function init() {
infofeld = null;
infofeld = document.getElementById('info');
if(infofeld != null) { infofeld.style.display = 'block'; }
}
Dann noch den head-code und Body-Tag im TS anpassen:
page.headerData.1 = TEXT
page.headerData.1.value = <script type="text/javascript" src="scripts.js"></script>
page.bodyTagCObject = TEXT
page.bodyTagCObject.value = <body onload="init()";>
Und den HTML-<noscript>-Bereich notierst du da wo du in brauchst, oder du machst das hier:
<html>
<head></head>
<body>
<div id="KEINSCRIPT">###NOSCRIPTTEXT###</div>
</body>
</html>
und erweiterst die init-Funktion so:
function init() {
infofeld = null;
skriptlos = null;
infofeld = document.getElementById('info');
scriptlos = document.getElementById('KEINSCRIPT');
if(infofeld != null) { infofeld.style.display = 'block'; }
if(scriptlos != null) { scriptlos.style.display = 'none'; }
}
So kannst du einen Container nach belieben füllen der ausgeblendet wird, wenn JS aktiv ist.
Hi Chrissli,
danke für deine Antwort. Ich werde es testen.
Viele Grüße
mimii