在展示时执行第三方JavaScript代码段

时间:2012-11-20 17:40:42

标签: javascript

展示跟踪器通常是您可以使用new Image().src方法或类似方法点击的网址。我只见过这些网址中的像素或PHP脚本。

当第三方想要执行JavaScript代码段时会发生什么?如下所示

<script src="http://their.special/javascript.file.js"></script>
<script>
    aFunctionThatExistsInThatSpecialFile();
    if(someFlagSetInThatFile) {
        someObjectInThatFile.setSomeProperty();
    }
    someOtherFunction();
</script>

或者看起来像

var myVar = document.getElementById('someID');
//... more JavaScript

该代码段可以做任何想要的事情,比如写出一些cookie或其他东西。

您无法将其加载为img的来源。您不应该document.write,因为展示事件可能会在页面加载后触发。 document.write可以擦除整个页面。

那么如何使用JavaScript来支持这种展示跟踪器?

2 个答案:

答案 0 :(得分:0)

尝试类似:

<script src="http://their.special/javascript.file.js"></script>
<script>
    aFunctionThatExistsInThatSpecialFile();
    if(someFlagSetInThatFile) {
        someObjectInThatFile.setSomeProperty();
    }
    someOtherFunction();
</script>

在HTML5中不允许具有<script>属性的src标记内执行代码,并且可能在某些浏览器中执行,但非常不可靠且非常不鼓励。

答案 1 :(得分:0)

如果您查看AdWords之类的内容,通常会看到以下内容:

<script src="//google.com/something/something.js"></script>
<script>
    account_name = "name";
    dollar_value = 37.05;
    fire_adWords_tracking();
</script>

这根本不是它的样子。
但这是它的作用 - 基本上。

然而,如今,更多的计划正在做一些事情(考虑GA):

var tracker = tracker || []; // if tracker doesn't exist, make it an array
tracker.push(["account", "12345H"],
             ["amount", "37.05"],
             ["product_name", "thingy"]);

然后在页面底部,加载一个脚本,该脚本将查找tracker并制作图像以跟踪所有数据:

(function () {
    var s = document.createElement("script"),
        parent = document.getElementsById("script")[0].parentNode,
        src = "//google.com/wherever.js";
    s.src = src;
    parent.appendChild(s);
}());

每当它加载时,它将通过递送给它的一系列东西,并将它们一个接一个地放在一起。

如果你正在谈论在“印象”上解雇它,那么你(或你公司的利益相关者 - 营销或IT,或者更高的分析)将必须定义“印象”对他们意味着什么。 / p>

对于很多人来说,只是将它放在页面底部,以便在页面加载时触发(即:页面的“印象”)就足够了。