好的,我已经看到很多主题围绕这个主题徘徊,但我见过的所有主题都涉及JSON或Ajax来响应客户端事件。我不需要这样做。我只是想在我的页面加载时从外部站点上的特定div加载数据。
例如,假设外部网站http://www.example.site
具有以下代码:
<div id="tm_score_1">
129.5
</div>
当我自己的页面加载时,我希望能够提取129.5
值。我假设它不像使用load("http://www.example.site #tm_score_1")
那么简单,因为它是一个外部网站,对吗?
答案 0 :(得分:4)
由于same origin policy没有一些服务器端代理,你不能在javascript中执行此操作。您可以在服务器上代理它,也可以使用其他人提供的代理,例如Yahoo(通过其他答案建议)YQL或YQL plugin。
答案 1 :(得分:2)
扩展Tentonaxe关于从您的服务器检索它的说法 想法是有一个像
这样的路径________ ________ __________
| | | | | external |
| user | | server | | site |
|______| -> |________| -> |__________|
\......\ |........| /........../
\______\ |________| /__________/
\/-----<----<
^
Javascript -> PHP -> Retrieve Info -\/
^<--------<--------<------
这个想法是你的你的服务器上的javascript调用php,然后使用curl或file_get_contents连接到外部服务器并检索信息。然后,此信息将从您服务器上的php传回javascript。
(是的,我很厌倦做一些(不可否认的)ascii艺术)。
答案 2 :(得分:2)
您可以使用cross domain jQuery plugin。
然后,您可以使用yahoo的服务器作为代理执行以下操作。
$('#container').load('http://google.com'); // SERIOUSLY!
$.ajax({
url: 'http://news.bbc.co.uk',
type: 'GET',
success: function(res) {
var headline = $(res.responseText).find('a.tsh').text();
alert(headline);
}
});
詹姆斯·帕德尔西(James Padolsey)在博客上发表了here。
答案 3 :(得分:0)
如果robots.txt允许,您可以使用YQL。这是current version of jQuery的查询。