[英]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"><script>window.onload = function(){}</script></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.