Javascript:实现Google Ad AJAX效果

时间:2009-04-03 20:34:04

标签: ajax xss

我需要创建一个可移植脚本,让其他人在他们的网站上实现,这些脚本将动态显示我的数据库(MySQL)中的内容。

我知道AJAX存在跨网站问题,但似乎Google的广告以某种方式以跨浏览器/跨网站的方式管理效果。

知道我必须给人们一个简单的剪切/粘贴片段放入他们的网站......我怎么能实现这个目标?谷歌是怎么做到的?

5 个答案:

答案 0 :(得分:2)

他们使用<iframe>,因此广告是从他们的服务器提供的,并且可以与他们的数据库通信。我不确定他们会从广告中使用任何类型的AJAX;它们似乎只是静态内容,有一些用于调整格式的脚本(这是可选的,因为即使用户已关闭JS,他们也希望自己的广告可见。)

请记住,您可以随时查看,看看他们做了什么。在Firefox上,使用Firebug来浏览网站上的html,css和脚本。在基于WebKit的浏览器(Safari,Chrome和其他)上,您可以使用Web Inspector

答案 1 :(得分:1)

Google的广告代码是通过调用远程javascript文件的脚本标记加载的。在加载远程javascript文件时,通常使用xmlhttp,iframe和类似的AJAX请求强制执行的AJAX限制不适用。

加载javascript文件后,您可以在页面中创建iframe,链接回服务器上的实际托管内容(并提供有关您希望的当前页面的所有数据)。

答案 2 :(得分:0)

jQuery在其ajax调用中内置了对jsonp的支持。如果你真的需要使用ajax,你可能想要使用它。

http://api.jquery.com/

http://docs.jquery.com/Ajax

答案 3 :(得分:0)

您不需要iFrame,也不需要AJAX。这真的很简单!

你从php / asp / whatever中提取一个实际上是构造文件的远程JS文件。在您的JS文件中,您有一个写入内容的document.write脚本。就这么简单。

我们一直这样做,媒体存储在不同的网站上。这是一个例子。

您的服务器:file.php(输出js)

<script>
document.write("I'm on a remote server");
</script>

其他网站:

<script src='http://www.yourserver.com/file.php'></script>

它将输出脚本生成的内容。要使内容自定义,您可以在脚本调用上方放置脚本变量,以调整文件所取出的内容。从那里它非常简单。

答案 4 :(得分:0)

我意识到这个问题已经有一年了,但我已经写了一个可以帮助解决document.write部分问题的库(这是否是TOS违规,我不知道){{3 }}。这很简单:

$('#ads').writeCapture().html('<script src="whatever-your-adsense-code-is"> </script>');

该示例使用jQuery,但您也可以单独使用它。