如何在Kynetx规则中正确发出javascript?

时间:2011-09-22 20:36:27

标签: javascript krl

我的广告网络中有代码,我正在尝试插入现有规则,从服务器调用广告并将其放入div中。

我通常会将javascript代码嵌入到我的标题中:

<script type="text/javascript">var z=document.createElement("script");z.type="text/javascript";z.async=true;z.src="http://engine.adzerk.net/z/12735/azk1_2_5";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(z, s);</script> 

然后放在身体中的div部分:

<div id="azk1"></div>

div就像这样放置:

rule NAME {
    select when pageview "url"
    pre {
        ad = '<div id="azk1"></div>';
    }
    replace_inner("#ad-slot-1", ad);

}

首先,div放置是否正确完成?第二,我如何格式化规则的javascript?我使用全局发射吗?我可以将它存储在另一台服务器上并调用它吗?如果是这样,应该如何格式化?

THX

1 个答案:

答案 0 :(得分:2)

你可以通过两种方式做到这一点。 第一个use resource syntax。把它放在全局块中:

use javascript resource "http://yourserver.com/path/to/javascript.js"

然后将JavaScript放在该文件中。

第二个选项是在规则本身中使用emit。它进入操作块,因此您的新规则将如下所示:

rule NAME {
    select when pageview "url"
    pre {
        ad = '<div id="azk1"></div>';
    }
    {
        emit <|
            // Your JavaScript here
        |>;
        replace_inner("#ad-slot-1", ad);
    }
}

您要放入文件或emit块中的JavaScript是您最初提供的代码中<script>标记之间的所有内容。