[英]Load script tag as a string and append it to html header
我想從服務器以字符串形式加載一些腳本標記並將其附加到HTML標頭中,但是即使我可以附加它,它也不會執行。 這是簡化的HTML文件,用於說明這種情況:
<head>
</head>
<body>
<script>
function htmlStringToElement(htmlString) {
var template = document.createElement('template');
htmlString = htmlString.trim();
template.innerHTML = htmlString;
return template.content.firstChild;
}
//Mocking http request
setTimeout(function() {
var httpResponseMock = '<script>alert("HELLO FROM HTTP RESPONSE!");<\/script>';
var script = htmlStringToElement(httpResponseMock);
document.head.appendChild(script);
}, 1000);
</script>
</body>
我想這是因為在動態添加腳本時已經渲染了標頭,但是還有其他方法可以實現嗎?
使用Jquery,
var httpResponseMock = '<script><\/script>';
$('head').append(httpResponseMock);
並使用javascript
var httpResponseMock = '<script><\/script>';
document.getElementsByTagName('head')[0].appendChild(httpResponseMock);
除非您知道自己在做什么,否則永遠不要使用innerHTML。
如果您真的想將腳本動態注入文檔中,請執行以下操作或使用eval:
const script = document.createElement("script"); script.textContent = "console.log('yay it works!');"; document.head.appendChild(script);
appendChild
正在運行它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.