1

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

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

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

4

5 回答 5

2

他们使用<iframe>,因此广告是从他们的服务器提供的,并且可以与他们的数据库对话。不过,我实际上并不确定他们是否使用了广告中的任何类型的 AJAX;它们似乎主要是静态内容,带有一些用于调整格式的脚本(这是可选的,因为即使用户关闭了 JS,他们也希望他们的广告可见)。

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

于 2009-04-03T20:43:29.963 回答
1

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

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

于 2009-04-03T20:41:02.450 回答
0

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

http://api.jquery.com/

http://docs.jquery.com/Ajax

于 2009-04-03T20:44:14.860 回答
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>

并且会输出脚本生成的内容。要定制内容,您可以在脚本调用上方放置脚本变量,以调整文件提取的内容。从那里开始很简单。

于 2009-04-03T21:01:24.210 回答
0

我意识到这个问题已经存在一年了,但是我已经编写了一个库来帮助解决document.write部分问题(我不知道这是否违反了 TOS)writeCapture.js。这很简单:

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

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

于 2010-05-07T02:01:39.810 回答