2010-01-23 39 views
5

需要什么如下:如何从我的HTML页面从另一个网站获取信息?

我有一个HTML网页,我需要访问另一个网站,并从它的源代码中获得一些东西。

我想运行像

link = "http://www.google.com"; 
doc.querySelectorAll('#courses_menu > ul > li > a'); // Apply on the link. 

东西让我从链接需要和使用它!

但是,我使用Jetpack滑动条。

是否需要对HTTP请求进行任何操作?

回答

1

我想你可以使用Ajax请求来拉整个页面,将内容放在一个隐藏的iframe中,然后在iframe中操作DOM。喜欢的东西(这里使用jQuery框架)

<iframe id="holder" style="display: none"> 

<script type="text/javascript"> 
$("#holder").load("http://www.google.com",function() { 
    $link = $("#holder").contents().find("#courses_menu > ul > li > a"); 
}); 
</script> 
+0

这确实有用吗?我试过,但得到这样的错误:XMLHttpRequest无法加载http://www.google.com/。来源http:// localhost:9000不被Access-Control-Allow-Origin允许.' – Freewind 2011-07-22 17:11:39

+1

是的;我认为它曾经是可能的,但由于跨站点安全问题,我认为这可能不再被允许。我也会检查使用完全合格的域名而不是本地主机。这可能是问题的原因。 – 2011-07-22 21:37:36

0

有一个页面,其中会有查询结果“doc.querySelectorAll('#courses_menu> ul> li> a');”

在页面中添加一个IFrame,将src设置为具有上述结果的页面。

<iframe src='pagenamewhichhasresult'/>

+0

你有试过吗?我认为这不会因同样的原产地政策而起作用。 – 2010-01-23 05:58:44

0

可以包括使用iframe HTML文档在其它网页内容。但是,由于原始策略相同,您不能让域中的脚本影响来自其他域的内容。换句话说,你不能编写一些JavaScript来操纵你放入iframe的其他网页的内容。该脚本也必须来自该域。

1

我建议使用的Ajax(例如jQuery的)与同一Web服务器一个PHP代理。 代理加载远程网页,然后在相同的域下可用。

不要忘记保护代理免受滥用。