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