【问题标题】:dynamically embedded google analytics from widget从小部件动态嵌入谷歌分析
【发布时间】:2012-11-29 14:17:00
【问题描述】:
var script2 = document.createElement( 'script' );
script2.value = "var _gaq = _gaq || [];_gaq.push(['_setAccount', 'UA-xxxxxx-1']);_gaq.push(['_setDomainName', 'http://www.widget.devserver2012.com']);_gaq.push(['_setAllowLinker', true]); _gaq.push(['_trackPageview']);(function() {var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);})()";

$('head').prepend(script2);

我正在使用此代码将 Google Analytics 从 javascript 小部件嵌入到文档头中,用户将嵌入到他们的页面中。但是 Google Analytics 是否没有接收数据。

【问题讨论】:

    标签: jquery google-analytics


    【解决方案1】:

    使用script2.text = "..."script2.innerHTML = "..." 代替script2.value = "..."

    这是一个 jsfiddle,它使用以下代码测试所有三个分配:http://jsfiddle.net/7nsGp/

    var script2 = document.createElement( 'script' );
    script2.value = 'alert("assign value worked");';
    $('head').prepend(script2);
    
    var script1 = document.createElement( 'script' );
    script1.text = 'alert("assign text worked");';
    $('head').prepend(script1); 
    
    var script0 = document.createElement( 'script' );
    script0.innerHTML = 'alert("assign innerHTML worked");';
    $('head').prepend(script0); 
    

    在 Chrome 和 Firefox 上,分配 .text.innerHTML,但不是 .value

    建议:通过在测试期间将alert('script ran') 附加到脚本文本的末尾来验证您的脚本 sn-p 是否正在执行。

    script2.value = "var _gaq = _gaq || []; ... ; alert('script ran');";
    

    【讨论】:

    • 这个答案没有意义。它必须是 alert('script2.text') 来提醒该值,否则它只会提醒“DOM 对象”。我正在使用 .value 以相同的方式附加一个 facebook sn-p 并且它可以工作。
    • 嗯,不确定您使用的是什么浏览器,但使用 .value 将脚本内容分配给脚本元素似乎在 Chrome 或 Firefox 中不起作用。我用测试脚本和警报示例更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 2014-11-30
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    相关资源
    最近更新 更多