我想放置一个Google代码管理器脚本,根据Google Tag文档,该脚本应该紧跟在开始标记之后。
由于我们无法更改源代码,因此我们必须使用以下代码段附加脚本。
<script type="text/javascript">
(function () {
var url = "path/to/js/file";
var gtm = document.createElement('script');
gtm.type = 'text/javascript';
gtm.async = true;
gtm.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + url;
var s = document.getElementsByTagName('body')[0];
s.parentNode.insertBefore(gtm, s);
})();
</script>
它几乎与Google分析脚本代码段相同。现在,脚本将附加在body标记之前。我不确定是否使用jQuery方法insertAfter是正确的方法,或者是否有更好的方法!
感谢您的帮助。
答案 0 :(得分:4)
实际上,您的代码会在script
和head
标记之间插入body
。请改用:
var s = document.body.firstChild;
s.parentNode.insertBefore(gtm, s);
答案 1 :(得分:1)
您可以使用Node.insertBefore
:
var body = document.getElementsByTagName("body")[0];
body.insertBefore(gtm, body.firstChild);
即使正文标记没有firstChild
,也可以使用。
答案 2 :(得分:0)
我想你可以尝试一下 - appendChild
document.getElementsByTagName("body")[0].appendChild(gtm);
答案 3 :(得分:0)
试试这个:
var script = 'The script content here'; // Add your JS as a string,
var url = 'path/to/js/file'; // Or link to the file.
var scriptNode = document.createElement('script'); // Create a script Element
scriptnode.setAttribute('type', "text/javascript"); // Set the Element's `type` attribute.
// Either:
scriptNode.appendChild(document.createTextNode(script)); // Add the text to the script Element.
// Or:
scriptNode.setAttribute('src', url); // Link to the script
// Place the script Element before the first child of the body.
document.body.insertBefore(scriptNode , document.body.firstChild);
所以,基本上,使用insertBefore
答案 4 :(得分:0)
如果您正在使用jQuery,则可以使用.prepend()。
(function () {
var url = "path/to/js/file";
var gtm = document.createElement('script');
gtm.type = 'text/javascript';
gtm.async = true;
gtm.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + url;
$('body').prepend(gtm);
})();
答案 5 :(得分:0)
你的body标签中是否有一个元素作为第一个元素,并在它之前附加脚本。使用yourFirstElementIdfromBodyTag.before(here is your appended code goes)
..
例如
<body>
<your first element> like <input type="hidden" id="hidA" />
//rest code goes here
</body>
现在建议使用$('#hidA').before('the script code')
。我确信它会在<body>
之后附加脚本。