将变量添加到 javascript url 调用

Adding a variable to a javascript url call

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

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

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

idtag 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 的路径是正确的。

我做错了什么?

谢谢!

请看jQuery getScript().

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

By default, $.getScript() sets the cache setting to false. This appends a >timestamped query parameter to the request URL to ensure that the browser >downloads the script each time it is requested.

请注意,"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>

您必须使用 javascript 完全添加脚本标签。您不能像 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

请在您的 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);
}