将变量添加到 javascript url 调用

Adding a variable to a javascript url call

本文关键字:url 调用 javascript 变量 添加      更新时间:2023-09-26

我想为我的网站添加一个网络流量分析工具。

调用它,我必须在要在我的网站中跟踪的每个页面中放置以下内容:

<script type="text/javascript" src="http://analysisTool.js?idtag=123456789&orderid=random"></script>

标识标记123456789是分配给我的网站的标记 ID

orderid 将是我要跟踪的每个页面的随机数(这是该工具的工作方式)

由于如果我需要更改此 orderid,我不想编辑页面,因此我创建了 myjs.js:

var uid = Math.floor(Math.random()*(100000000-0))+0;

然后,我正在做:

<script type="text/javascript" src="/_includes/myjs.js"></script>
<script type="text/javascript" src="http://analysisTool.js?idtag=123456789& orderid ="+uid></script>

但这肯定是一种错误的方法,因为在浏览器工具中,在网络章节中,我看不到 orderid。

我已经检查了 myjs 的路径.js是正确的。

我做错了什么?

谢谢!

你必须用javascript完全添加script标签。你不能在HTML页面中使用这样的javascript变量。

如果要动态添加脚本标记,请使用以下脚本:

var script = document.createElement('script'); //create new tag
script.src = "http://analysisTool.js?idtag=123456789&orderid=" + uid;//set the url with your id
document.getElementsByTagName('head')[0].appendChild(script);//append the scripttag

请看一下 jQuery getScript()。

我认为它可以解决您的问题:

默认情况下,$.getScript() 将缓存设置设置为 false。这会将带>时间戳的查询参数追加到请求 URL,以确保浏览器在每次请求脚本时>下载脚本。

请注意,"document.write"在这种情况下也有效。

您尝试以错误的方式访问 uid(在 src 属性中)。它需要在脚本上下文中,因此您唯一的选择是以动态方式添加脚本:

<script type="text/javascript" src="/_includes/myjs.js"></script>
<script type="text/javascript">
    var fileref=document.createElement('script')
    fileref.setAttribute("type","text/javascript")
    fileref.setAttribute("src", "http://analysisTool.js?idtag=123456789& orderid ="+uid);
    document.getElementsByTagName("head")[0].appendChild(fileref)
</script>

请在myjs中添加这个js声明动态.js。表示通过 JavaScript 代码创建脚本标记。

window.onload = function() {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    var uid = Math.floor(Math.random()*(100000000-0))+0;
    script.src = 'http://analysisTool.js?idtag=123456789&orderid=' + uid;
    document.head.appendChild(script);
}