簡體   English   中英

動態將JS代碼添加到head標簽

[英]Dynamically add JS code to head tag

我正在嘗試將腳本添加到頁面的head標簽。 我正在嘗試在body標簽中添加代碼,但未在head標簽中顯示。

$(document).load(function() {
   $('<script>console.log("hi");</' + 'script>').appendTo("head")
});

我看到這是在<body>中添加的,但是我沒有在<head>看到它。

我嘗試了append,appendTo和document.ready和document.load函數的變體。 到目前為止,這些都不起作用。

在發布之前,我經歷了類似線程的討論。 我似乎沒有解決我的問題

您可能需要做的一件事是將</換成<\\/

如果它是一個內聯腳本,也許您可​​以嘗試向其添加setTimeout。

嘗試以下功能:

(function (src) {
    var tagName = 'script', script = document.createElement(tagName);
    script.src = src;
    var elm = document.getElementsByTagName(tagName)[0];
    elm.parentNode.insertBefore(script, elm);
})('SCRIPT.SRC.HERE.js');

這將創建一個動態script標簽,並將其添加到第一個script標簽之前。 如果如果head沒有任何script標簽,它將無法以您希望的方式工作。 在這種情況下,您可以使用以下功能:

(function (src) {
    var tagName = 'script', script = document.createElement(tagName);
    script.src = src;
    var head = document.getElementsByTagName('head')[0];
    head.insertBefore(script, head.childNodes[0]);
})('SCRIPT.SRC.HERE.js');

這將直接獲取head標記內的第一個元素,並在其之前附加新腳本。

document不會觸發“加載”事件-否則,它是來自其他加載對象(例如另一個腳本或圖像文件)的冒泡事件。 嘗試將document更改為window

http://jsfiddle.net/5bhmwyrx/3/

$(window).load(function() {
   var script = $('<script>console.log("hi");</' + 'script>').appendTo(document.head);
   console.log("Script was appended to", script[0].parentNode.nodeName);
   //-> Script was appended to HEAD
});

$(document).load(function() {
   console.log("You should never see this");
});

document.onload = function () {
    console.log("You should not see this in modern browsers");
};

添加一個

[英]add a <link rel=“canonical” dynamically in the head tag

暫無
暫無

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

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