Re: PHP DOM XHTML - let me set my own javascript from code

From: Date: Wed, 19 Oct 2005 11:42:20 +0000
Subject: Re: PHP DOM XHTML - let me set my own javascript from code
References: 1  Groups: php.general php.general 
Request: Send a blank email to php-general+get-224319@lists.php.net to get a copy of this message
Petr Smith wrote:
but it encloses it to CDATA section automatically like this: <script type="text/javascript" language="Javascript"><![CDATA[alert('ddd');]]></script> but I need it like this (because otherwise the javascript don't work): <script type="text/javascript" language="Javascript"> //<![CDATA[ alert('ddd'); //]]> </script>
First, script was using some bogus method names. Secondly, you try to do anything like the following (which do work)? $html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n".
"    \n".
"<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n".
"<head>\n" .
"    <script  type=\"text/javascript\" language=\"Javascript\" />\n" .
        "</head>\n" .
        "<body>hello\n" .
        "</body>\n" .
        "</html>";
$dom = new DomDocument(); $dom->preserveWhiteSpace = true; $dom->loadXML($html); $params = $dom->getElementsByTagName('script'); foreach ($params as $param) {
    $dat = $dom->createTextNode("\n//");
    $param->appendChild($dat);
    $dat  = $dom->createCDATASection("\n\nalert('ddd');\n\n//");
    $param->appendChild($dat);
    $dat = $dom->createTextNode("\n");
    $param->appendChild($dat);
} echo $dom->saveXML(); Could also do it using <!-- --> through a comment node (following adds some linefeeds too): foreach ($params as $param) {
    $dat = $dom->createTextNode("\n");
    $param->appendChild($dat);
    $dat  = $dom->createComment("\n\nalert('ddd');\n\n");
    $param->appendChild($dat);
    $dat = $dom->createTextNode("\n");
    $param->appendChild($dat);
}

« previous php.general (#224319) next »