我需要创建一个可移植脚本,让其他人在他们的网站上实现,这些脚本将动态显示我的数据库(MySQL)中的内容。
我知道AJAX存在跨网站问题,但似乎Google的广告以某种方式以跨浏览器/跨网站的方式管理效果。
知道我必须给人们一个简单的剪切/粘贴片段放入他们的网站......我怎么能实现这个目标?谷歌是怎么做到的?
答案 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,你可能想要使用它。
答案 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,但您也可以单独使用它。