我如何正确地发出javascript在Kynetx规则

How do I properly emit javascript in Kynetx rule?

本文关键字:javascript Kynetx 规则 正确地      更新时间:2023-09-26

我有代码从我的广告网络,我正试图插入到一个现有的规则,从服务器调用广告,并将其放入一个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> 

然后是body中的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

有两种方法。第一个use resource语法。把它放到全局块中:

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>标签之间的所有内容