Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在iFrame中呈现广告,然后将其移动到主窗口_Javascript_Iframe_Advertisement Server - Fatal编程技术网

Javascript 在iFrame中呈现广告,然后将其移动到主窗口

Javascript 在iFrame中呈现广告,然后将其移动到主窗口,javascript,iframe,advertisement-server,Javascript,Iframe,Advertisement Server,我有一组由document.write编写的广告,因为这是adserver唯一要做的事情 我见过其他网站如果用户在页面上停留一段时间,就会在页面上重新加载广告(这是我将来可能想做的事情)。所以我在玩在iFrame中加载广告的游戏,然后将它们移出主窗口。这似乎很有效,直到它在iframe中的iframe中发布了一则谷歌广告。是否有可能将它们正确地拉出/在页面上移动谷歌广告 这是我目前拥有的,它适用于除iframe中的iframe广告之外的所有内容 $().ready(function(){

我有一组由
document.write编写的广告,因为这是adserver唯一要做的事情

我见过其他网站如果用户在页面上停留一段时间,就会在页面上重新加载广告(这是我将来可能想做的事情)。所以我在玩在iFrame中加载广告的游戏,然后将它们移出主窗口。这似乎很有效,直到它在iframe中的iframe中发布了一则谷歌广告。是否有可能将它们正确地拉出/在页面上移动谷歌广告

这是我目前拥有的,它适用于除iframe中的iframe广告之外的所有内容

$().ready(function(){
    $('#iframe').load(function(){
        var middle_ad_contents = $('#iframe').contents().find('#middle_ad').html();
        $('#ad_middle').html(middle_ad_contents);
    });
});
[编辑]

经进一步调查。。。看起来重新加载谷歌广告可能违反服务条款,也许我不应该这样做

[编辑2]

重新加载整个页面并不是一个真正的选项(而且是一种愚蠢的举动)


重点可能是旋转ads,但更多的是阻止它们阻止页面加载,因为通过adserver Y服务的adserver X(通过adserver Z服务的adserver Y)响应缓慢/没有响应。iframe似乎是最好的解决方案,因为这样我可以延迟文档。写入深度为2或3级,直到页面结束,而不会将整个页面作为
文档擦除。在pageload==
文档后写入
。替换整个文档。还有一个可能的选择是用这种方法将ajaxy/其他iframed(抖动)内容货币化。

这不仅可能违反服务条款,而且也降低了广告对广告商的价值,并在UI中创造了一个笨拙的元素

从用户界面的角度考虑……你在网站上,专注于某件事,然后一切都会闪现。你的注意力从集中注意力到弄清刚刚发生的事情。没关系,只是一个横幅。接下来……现在,我在哪里

对于广告商来说,如果你注意到了广告,并且即将点击它,它就会发生变化。现在怎么办,你能回去吗?否则,你就失去了收入。用户在许多页面上花费数秒钟,因此,除非你有一个令人难以置信的“粘性”网站,否则广告客户真正能获得多少曝光率?记住,谷歌奖励AdWord网站的点击量,而不是基于显示的数量,这实际上会伤害你的点击率

如果你决心要做到这一点,我想我会考虑通过让广告服务器直接邮寄到DOM来攻击它。然后使用基于javascript的计时器异步ping adserver,并再次告诉它重新绘制所需的div。我会避免使用类似瘟疫的iframe,因为在这个简单Dom操作的时代,它们并不友好


或者,您可以采用MSNBC方法,每X分钟重新加载一次整个页面。这是一个可怕的UI模式,但它会实现您的目标,并且可能会弯曲(但不会破坏)TOS。

最好的方法可能是使用
文档。编写
替换。有几个可供选择,但这里有一个:

这将替换全局document.write函数,使其即使在加载页面后也可以使用