Re: PHP DOM XHTML - let me set my own javascript from code
| From: | Petr Smith | Date: | Wed, 19 Oct 2005 13:21:43 +0000 |
| Subject: | Re: PHP DOM XHTML - let me set my own javascript from code | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-224326@lists.php.net to get a copy of this message | ||
Thanks a lot Rob, it's so simple! I don't know why I did't find it myself.
Petr
Rob wrote:
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);}