Zum Inhalt springen

Javascript im root Template ?

Erstellt am 4. August 2011 · 2 Antworten · letzte Antwort am 8. August 2011

Tags: Frage

mimii ·

Hallo ins Forum,

ich möchte in meinem root Template, nach dem Footer, einen kleinen Javascriptbereich haben, in dem ich einfach ein <div> ausgebe. Falls JS deaktiviert ist kommt ein <noscript> Bereich mit Hinweis. Das sieht wie folgt aus:

<div id="footer">
  ###FOOTER###
</div>
<script type="text/javascript">
  document.write("<div id="info">###INFO###</div>" );
</script>
<noscript>		
  <p>Aktivieren Sie bitte Javascript!</p>
</noscript>

Das <div> möchte ich dann per jQuery Dialog ansprechen und Inhalte ausgeben. Das funktioniert aber nicht. Noscript funktioniert, bei ausgeschaltetem Javascript.

Im Quellcode steht anch Aufruf der Seite folgendes:

<script type="text/javascript">
//<![CDATA[
 document.write("<div id="info">
 <!-- CONTENT ELEMENT, uid:143/text [begin] -->
 <div id="c143" class="csc-default">
 <!-- Header: [begin] -->
 <div class="csc-header csc-header-n1"><h2 class="csc-firstHeader">Überschrift<\/h2><\/div>
<!-- Header: [end] -->

<!-- Text: [begin] -->
<p>Hier erscheint der Contenttext.</p>
<!-- Text: [end] -->
<\/div>
<!-- CONTENT ELEMENT, uid:143/text [end] -->
<!-- CONTENT ELEMENT, uid:145/text [begin] -->
<div id="c145" class="csc-default">
<!-- Text: [begin] -->
<ul><li><a href="fileadmin/pdf/infodatei.pdf" title="Datei Herunterladen" class="download">Infoflyer anzeigen<\/a><\/li><\/ul>
<!-- Text: [end] -->
<\/div>
<!-- CONTENT ELEMENT, uid:145/text [end] -->
<\/div>" );
//]]>
</script>

Das <div> ist wohl da und wird auch mit dem Contentelementen befüllt, aber nicht angezeigt.

Der Aufruf im Setup sieht so aus:

....
      INFO = COA
      INFO {
        10 = RECORDS
        10 {
          dontCheckPid = 1
          tables = tt_content
          source = tt_content_143
        }
        20 = RECORDS
        20 {
          dontCheckPid = 1
          tables = tt_content
          source = tt_content_145
        }
      }
....

Was mache ich falsch? Danke für ne Idee.
Viele Grüße
mimii

p.s. Falls jemand das Blank zwischen den Anführungszeigen und der runden schließenden Klammer auffällt, ist das nur damit hier nicht ein Smily angezeigt wird. Im Original ist hier kein Leerzeichen dazwischen
" );

mimii ·

Hallo ins Forum,

kurze Info. Das Dialogfenster wird nun angezeigt. Ich habe nur die Hochkommatas getauscht in der HTML-Datei. Die einfachen Zeichen außen, die doppelten innen. Warum es hiermit funktioniert verstehe ich nicht wirklich #paralyzed#

<script type="text/javascript">
  document.write("<div id='info'>&nbsp;</div>" );
</script>

Wie gesagt, das Dialogfenster wird nun geöffnet, aber es wird nicht in dem Inhalt aus den Contentelementen gefüllt. Mein TS hierzu sieht wie so aus:

INFO = COA
INFO {
  10 = RECORDS
  10 {
    dontCheckPid = 1
    tables = tt_content
    source = tt_content_143
  }
  20 = RECORDS
  20 {
    dontCheckPid = 1
    tables = tt_content
    source = tt_content_145
  }
}

Hat jemand ne Idee, warum die Inhalte nicht in das Fenster geladen werden?

Danke und Gruß
mimii

mimii ·

Hallo nochmal,

also ich komme nicht wirklich weiter. Ich vermute es liegt am Javascript im root-Template und zwar genauer an den Hochkommatas

<script type="text/javascript">
  document.write("<div id='info'>###INFO###</div>" );
</script>

Fehlerkonsole bringt die Meldung:
missing ) after argument list
document.write ("<div id="info">

Hier sieht man, dass zweimal die doppleten Hochkommas gesetzt sind, obwohl ich eigentlich 'info' gesetzt hatte.

Tausche ich die Hochkommatas so:

<script type="text/javascript">
  document.write('<div id="info">###INFO###</div>' );
</script>

erhalte ich die Fehlermeldung:
unterminated string literal
document.write('<div id="info">

Ich nehme an, dass das TS deshalb das <div> bzw. den Marker ###INFO### gar nicht findet und deshalb nicht befüllen kann.

Danke für jede Idee und Gruß
mimii