我有一个OpenSocial应用程序,并想在其中尝试一下AdSense。我可以很容易地运行Javascript,但不能直接包含HTML代码片段。出于这个原因,我正在尝试想出一个脚本来创建一个包含AdSense广告的DIV。
function adsense(w, h, slot) {
google_ad_client = "pub-4815352041522054";
google_ad_slot = slot;
google_ad_width = w;
google_ad_height = h;
var url = "http://pagead2.googlesyndication.com/pagead/show_ads.js";
document.write(
'<div style="border:solid 3px red;">'
+ '<sc' + 'ript src="' + url + '">'
+ '</sc' + 'ript>'
+ 'The ad should be inside the same box as this text.</div>'
);
}
adsense(160, 600, 5133629129);上面的代码将编写一个带有红色边框的div,并将AdSense单元放在其中。这在Chrome上运行得很好,但在IE上,引用的AdSense代码似乎是在div关闭后运行的。
我希望能够从代码动态创建AdSense单元(例如,用于A/B测试目的),并根据需要重新定位它们。你有什么办法让它工作吗?
发布于 2011-06-02 02:42:57
很明显,现在已经太晚了,但我也遇到了同样的问题,我也在StackOverflow上问过了(很快我也会在上面发布长格式的答案),但你唯一能做的就是把它加载到iframe中。
步骤1
使用adsense代码在服务器上创建一个HTML文件,如下所示:
<script type="text/javascript"><!--
google_ad_client = "ca-pub-xxxxxxxxxxxx";
/* Some Ad */
google_ad_slot = "xxxxxxxxx";
google_ad_width = 468;
google_ad_height = 60;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>步骤2
在您刚刚创建相同HTML文件中,在顶部添加:
<style> body {padding:0;margin:0;} </style>这将确保iframe中没有空格,并且广告代码恰好贴近iframe的边界。
步骤3
动态添加iframe,如下所示:
var insertAdsenseIframe = function(src,width,height){
var iframe = document.createElement('iframe');
iframe.setAttribute("frameborder","0");
iframe.setAttribute("src", src);
iframe.setAttribute("width", width);
iframe.setAttribute("height", height);
return iframe; //Return it so you can use whatever method you want to insert/append
}
var myIframe = insertAdsenseIframe('http://oscargodson.com/dev/scriptTest/cleariframe.html','468px','60px');
document.getElementById('test').appendChild(myIframe);JavaScript只是一个示例,但它是有效的。我从来没有在IE或其他什么地方测试过。这只是一个开始。
演示
因为在JSBin和StackOverflow上发布这个是违反服务条款的,所以我只是创建了一个广告形状的div,但是如果你把广告放进去,它会起作用的。
请参阅:http://jsbin.com/evoqi6/ Hack:http://jsbin.com/evoqi6/edit
发布于 2010-07-20 19:30:50
我把div标签放在外面,它起作用了..看起来是IE处理javascript的方式有问题。
<div style="border:solid 3px red">
<script type="text/javascript" charset="utf-8">
function adsense(w, h, slot) {
google_ad_client = "pub-4815352041522054";
google_ad_slot = slot;
google_ad_width = w;
google_ad_height = h;
var url = "http://pagead2.googlesyndication.com/pagead/show_ads.js";
document.write(
'<sc' + 'ript src="' + url + '">'
+ '</sc' + 'ript>'
+ 'The ad should be inside the same box as this text.'
);
}
adsense(160, 600, 5133629129);
</script>
</div>https://stackoverflow.com/questions/3264633
复制相似问题