PHP: ввести код javascript в файл html - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу написать / ввести код javascript внутри html файла "шаблона. html".

<div id="scr">

</div>

и javascript

<script>
    window.onload = function(){}
</script>

PHP

        $doc = new DOMDocument();

        $doc->loadHTMLFile("template.html");

        $doc->getElementById('scr')->nodeValue="<script>window.onload = function(){}</script>"; 

        $doc->saveHTMLFile("html/".$name.".html");

Что я получаю

<div id="scr">&lt;script&gt;window.onload = function(){}&lt;/script&gt;</div>

Что я ожидаю:

<div id="scr"><script>window.onload = function(){}</script></div>

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

У меня есть метод setInnerHTML

function setInnerHTML($element, $html)
{
    $fragment = $element->ownerDocument->createDocumentFragment();
    $fragment->appendXML($html);
    $clone = $element->cloneNode(); // Get element copy without children
    $clone->appendChild($fragment);
    $element->parentNode->replaceChild($clone, $element);
}

//your code

$doc = new DOMDocument();

$doc->loadHTMLFile("template.html");

setInnerHTML($doc->getElementById('scr'),"<script>window.onload = function(){}</script>"); 

$doc->saveHTMLFile("html/".$name.".html");

, он будет работать как заклинание и поэтому универсален c для использования ...

0 голосов
/ 05 февраля 2020
$doc = new DOMDocument();

        $doc->loadHTMLFile("template.html");

        $script=$doc->createElement("script");

        $script->nodeValue="window.onload = function(){}";

        $doc->getElementById('scr')->appendChild($script);

        $doc->saveHTMLFile("html/".$name.".html");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...