如何使用JavaScript获取远程页面的内容?
我有一个来自不同域的远程页面的URL,我必须下载、解析和更新当前页面的DOM。我已经找到了使用新ActiveXObject(“Msxml2.XMLHTTP”)实现这一点的示例,但我想这仅限于IE和使用新的java.net.URL,但我不想使用java。还有其他选择吗?这个对象对于大多数现代浏览器来说都是通用的,并且是AJAX web应用程序的动力。同样的域策略也会让您受益匪浅 1) 通过您的服务器进行代理。浏览器->您的服务器->他们的服务器->您的服务器->浏览器 2) 使用闪光灯或silverlight。第三方必须允许您访问。javascript和flash之间的桥梁对于大量数据来说不是很好,而且存在bug。Silverlight不像flash那样无处不在如何使用JavaScript获取远程页面的内容?,javascript,get,webpage,Javascript,Get,Webpage,我有一个来自不同域的远程页面的URL,我必须下载、解析和更新当前页面的DOM。我已经找到了使用新ActiveXObject(“Msxml2.XMLHTTP”)实现这一点的示例,但我想这仅限于IE和使用新的java.net.URL,但我不想使用java。还有其他选择吗?这个对象对于大多数现代浏览器来说都是通用的,并且是AJAX web应用程序的动力。同样的域策略也会让您受益匪浅 1) 通过您的服务器进行代理。浏览器->您的服务器->他们的服务器->您的服务器->浏览器 2) 使用闪光灯或silve
3) 使用标签。这真的不安全。。。只有当第三方内容是有效的javascript时才有效。如何通过AJAX加载PHP脚本,而AJAX不执行
文件获取内容()
?这应该适用于不同的领域。如果我理解正确的话。编写一个服务器端脚本,为您检索页面内容是一个不错的选择。您可以使用XMLHttpRequest对象对该脚本进行AJAX调用,这将为您完成所有html(?)
尽管如此,我还是建议不要这样做。我不知道你到底有多信任另一个网站,但同一来源政策的存在是有原因的。你到底想做什么?通常,有一个解决办法。我认为,根据同一原产地政策的限制,您无法做到这一点。两个域使用iframe在两个域之间进行通信。我们也可以使用JS代码,但两个域中都需要有通信代码。子帧可以与祖父母帧(窗口)接触,但不能在此处 因为您同时引用了其他url 唯一的方法是使用服务器端代码访问其他域上的内容。只需使用PHP:
<?php
$url = "http://www.domaintoretrieve.com";
ob_start();
include_once( $url );
$html = ob_get_contents();
ob_end_clean();
?>
$html包含需要操作的整个页面。您可以控制其他域吗?如果他们创建了一个标准,那么www.datejs.com可能仍然可以使用AJAX进行此操作…尽管我不推荐使用AJAX…这基本上是Steve Brewer建议的。但如果可能的话,我宁愿避免使用代理。同源策略是安全的方法。其他网站有API?Google Finance API不提供获取股票报价的方法,但是正如这里提到的,有一种方法可以获取这样的报价:那么,您正在尝试从Google Finance检索股票报价?这有助于明确您想要实现的目标:-)@JorenB是的,我正在尝试获取股票报价,可能还有一些其他补充信息,这些信息是使用此非官方API提供的:)本地运行的bookmarklet会受到同样的限制吗?