在Tritium中注入多行JS

时间:2013-09-19 00:37:13

标签: javascript xpath moovweb tritium

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

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);
    };")

用氚处理这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分: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