【问题标题】:Adding a variable to a javascript url call将变量添加到 javascript url 调用
【发布时间】:2015-01-26 09:19:12
【问题描述】:

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

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

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

我做错了什么?

谢谢!

【问题讨论】:

    标签: javascript variables url


    【解决方案1】:

    您必须使用 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
    

    【讨论】:

      【解决方案2】:

      请看一下 jQuery getScript()

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

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

      请注意,“document.write”也适用于这种情况。

      【讨论】:

        【解决方案3】:

        您试图以错误的方式访问 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>
        

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2015-05-06
            • 1970-01-01
            • 2011-10-23
            • 2021-03-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多