Announcement

Collapse
No announcement yet.

JavaScript aus XSLT in HTML übernehmen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JavaScript aus XSLT in HTML übernehmen

    Hallo!

    Ich habe in mein XSLT-Stylesheet eine JavaScript Funktion, welche genau auf die dann entstehende HTML-Seite angepasst ist. Die Funktion lautet:

    Code:
    <script language="JavaScript" type="text/javascript">
          function display(name) {
            for(i=0; i< document.getElementsByName(name).length;i++) {
               if(document.getElementsByName(name)[i].style.display == 'none') {
                 document.getElementsByName(name)[i].style.display = 'block';
               }
               else {
                 window.location.reload();
               }
            } 
          }
    </script>
    Wenn ich nun meine HTML-Seite generieren will, dann gibt er folgenden Fehler aus:

    components.xsl:17: parser error : error parsing attribute name
    for(i=0; i<document.getElementsByName(name).length;i++) {
    ^
    components.xsl:17: parser error : attributes construct error
    for(i=0; i<document.getElementsByName(name).length;i++) {
    ^
    components.xsl:17: parser error : Couldn't find end of Start Tag document.getElementsByName line 17
    for(i=0; i<document.getElementsByName(name).length;i++) {
    ^
    error
    xsltParseStylesheetFile : cannot parse components.xsl
    compilation error: file components.xml line 4 element DIMS-components
    xsltParseStylesheetProcess : document is not a stylesheet

    Er kommt also nicht mit dem Attribut in dem einen Aufruf klar. Ich möchte aber auch überhaupt nicht, dass er da irgendwas mit macht. Er soll dieses JavaScript einfach nur so wie es da steht übernehmen und in den Head der HTML-Seite schreiben. Gibt es dafür eine Möglichkeit?

    Gruß
    Rantan

  • #2
    <script language="JavaScript" type="text/javascript">
    <xsl:text disable-output-escaping="yes">
    function display(name) {
    for(i=0; i &lt; document.getElementsByName(name).length;i++) {
    if(document.getElementsByName(name)[i].style.display == 'none') {
    document.getElementsByName(name)[i].style.display = 'block';
    }
    else {
    window.location.reload();
    }
    }
    }
    </xsl:text>
    </script>

    Das Problem lässt sich durch den rot markierten Code lösen, hier macht das "<"-Zeichen Probleme und muss entsprechend maskiert werden. Alternativ kann mit CDATA-Abschnitten operiert werden.

    Comment

    Working...
    X