0

如果无法回答这个问题,那么我将发布第二个“后退”问题。我一直在编写 javascript jsonp 类型的应用程序,其中客户端必须将单个 javascript 行插入到他们希望应用程序显示在网页上的任何位置。到目前为止效果很好,但现在我想在 js src 属性中再添加一个 GET 变量,即当前客户端的页面 url。

前:

<script id="myScript" type="text/javascript" src="http://www.mydomain.com/scripts/ds.js?cid=00000001&domain=clientdomain.com"></script>

但现在对于新的转折,我想在 src 中添加页面 url 作为 GET 变量,如下所示:

<script id="myScript" type="text/javascript" src="http://www.mydomain.com/scripts/ds.js?cid=00000001&domain=clientdomain.com&page="+document.URL></script>

如果将 document.URL 放在脚本标记之间,我可以这样做(但这导致我不得不编写一个稍大且不太优雅的代码块)。也许标签本身的属性参数中实际上不允许使用javascript。

4

1 回答 1

1

执行此类操作的常用方法是在 JavaScript 中构建标签本身。您可以获得异步加载的额外好处(尽管如果您不知道如何正确处理异步加载,这可能是一个问题)。例如:

<script>
    (function(d){
        var f=d.createElement('script'),s=d.getElementsByTagName('script')[0];
        f.type='text/javascript';
        f.async=true;
        f.src='http://www.mydomain.com/scripts/ds.js?cid=00000001&domain=clientdomain.com&page='+encodeURI(document.location.href);
        s.parentNode.insertBefore(f,s)
    })(document)
</script>

谷歌分析使用类似的代码,所以你在好公司。你是对的,你不能直接在 HTML 标记内执行此操作。

于 2013-05-19T14:35:54.860 回答