3

我有一个 javascript 片段,我需要在每个页面上注入它来启动我的谷歌分析。我尝试使用注入并不断收到错误:

inject("// load ga.js if it doesn't exist
    if (!window._gat) {
        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);
    };")

用氚解决这个问题的最佳方法是什么?

4

1 回答 1

1

inject()函数似乎将字符串转换为 HTML,然后将其放入当前节点。由于您的字符串是 JS,而不是有效的 HTML,因此会引发各种错误。

相反,您可以使用 Tritium 的insert_javascript()函数,在文档中描述:http://tritium.io/current#XMLNode.insert_javascript(Text%20%25js)

insert_javascript()还将字符串包含在CDATA标记中,因此您不必担心 HTML 字符编码等。

这是一个如何在您的情况下工作的示例:http: //tester.tritium.io/7532c4e18619051c5736a0ad990e4a33b1b3f00f

于 2013-09-19T07:26:47.200 回答