簡體   English   中英

PHP : 在 html 文件中注入 javascript 代碼

[英]PHP : inject javascript code inside the html file

我想在 html 文件“template.html”中編寫/注入 javascript 代碼。

<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>
$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");

我創建了一個方法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");

這將像魅力一樣工作,使用起來也很通用......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM