![](/img/trans.png)
[英]How to add script tag in head section to wordpress theme in cpanel?
[英]How to add a script tag to the head section after a specific script tag
我正在使用一個頁面應用程序。 我正在嘗試在特定的JavaScript代碼之后從頁面的嵌套div的頭部添加<script></script>
標記,但是出現以下錯誤。 請在下面找到我的jsp代碼。
如何在嵌套div的head標簽中的特定腳本標簽之后添加腳本標簽?
TypeError:無法在“節點”上執行“ appendChild”:參數1不是“節點”類型
<html>
<head>
<!-- Google Tag Manager -->
<script>
(function(w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start' : new Date().getTime(),
event : 'gtm.js'
});
var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l='
+ l
: '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-5HWKRLC');
</script>
**<! Here i need to add another script when my inner div loading !>**
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
...
</head>
<body>
<% String gtm = (String) session.getAttribute("gtmObj"); %>
<div>
<script>
document.getElementsByTagName('head')[0].appendChild('<script>window.dataLayer = window.dataLayer || [];dataLayer.push(<%=gtm%>)<\/script>');
</script>
</div>
</body>
</html>
appendChild
接受類型為node
或HTML element
的參數appendChild
: //developer.mozilla.org/en-US/docs/Web/API/Node/appendChild ,您正在傳遞string
。 而是使用document.createElement
創建元素。
const script = document.createElement('script');
script.textContent = `window.dataLayer = window.dataLayer || []; dataLayer.push('<%=gtm%>')`;
document.getElementsByTagName('head')[0].appendChild(script);
要在特定script
標記之后插入script
,可以添加自定義屬性,然后選擇該元素,然后使用insertAdjacentElement
在insertAdjacentElement
插入新創建的腳本。
// HTML
<script data-id = "myScript"></script>
// Javascript
const script = document.querySelector("script[data-id='myScript']");
const newScript = document.createElement('script');
newScript.textContent = "const a = 10";
script.insertAdjacentElement('afterend', newScript);
使用document.getElementById("some").insertAdjacentElement('afterend',script);
並使用insertAdjacentElement
將其添加到腳本標簽insertAdjacentElement
var script = document.createElement("script"); script.setAttribute("type", "text/javascript"); script.setAttribute('textContent', '<script>window.dataLayer = window.dataLayer || [];dataLayer.push(<%=gtm%>);dataLayer.push({\\'event\\':\\'Txn\\',\\'Affiliation\\':\\'Vehicle\\'})<\\/script>'); document.getElementById("some").insertAdjacentElement('afterend',script);
<html> <head> <!-- Google Tag Manager --> <script id="some"> (function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start' : new Date().getTime(), event : 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-5HWKRLC'); </script> </head> <body> something </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.