我正在运行一个React应用,当我从捆绑包和其他文件中渲染主页时,我得到了一个名为https://grcontent.experience-booking.com/file/localhost_script.js
的JavaScript脚本:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-101203313-3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-101203313-3');
</script>
在我的主要js文件中,我想以某种方式访问此脚本中的url,但我不知道该怎么做?我要执行此操作的原因是执行另一个以'UA-101203313-3'作为属性的脚本。非常感谢
答案 0 :(得分:1)
您应该可以使用querySelector
,并执行类似的操作以获取URL
注意,我更改了脚本src url,因此实际上将其称为
var tag = document.querySelector('script[src^="https://www.googletagmanager"]');
var url = tag.src;
console.log(url)
// and one could also very simple get the id, like this
var params = (new URL(tag.src)).searchParams;
console.log(params.get("id"))
<script async src="https://www.googletagmanager_oops.com/gtag/js?id=UA-101203313-3"></script>
答案 1 :(得分:1)
您可以从页面中检索所有脚本标记,并循环遍历它们以找到正确的标记并解析src
属性。像这样:
var scripts = Array.prototype.slice.call(document.getElementsByTagName('script'));
for (var i=0; i<scripts.length; i++) {
var script = scripts[i];
if (script.src && script.src.startsWith('https://www.googletagmanager.com') ){
return getIdFromSrc(script.src);
}
}