是否将外部页面源存储在Javascript变量中?

是否将外部页面源存储在Javascript变量中?,javascript,jquery,html,Javascript,Jquery,Html,严格使用Javascript,是否可以调用远程URL并将其存储在变量中?若要指定,这将不在同一个域上。基本上,我正试图找出在chrome扩展中抓取/解析数据的最佳解决方案。如果允许您使用jQuery,您可以有如下功能: $.ajax({ url: url, data: data, success: success, dataType: dataType }); 还可以使用$.get来实现这一点 如果允许您使用jQuery,您可以使用以下内容: $.ajax({ ur

严格使用Javascript,是否可以调用远程URL并将其存储在变量中?若要指定,这将不在同一个域上。基本上,我正试图找出在chrome扩展中抓取/解析数据的最佳解决方案。

如果允许您使用jQuery,您可以有如下功能:

  $.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
还可以使用$.get来实现这一点


如果允许您使用jQuery,您可以使用以下内容:

  $.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
还可以使用$.get来实现这一点


如果您试图从外部域加载页面,您将遇到。您可以通过在自己的站点上设置一个简单的代理来绕过此限制。这是一段服务器端代码,其功能是代表您向外部页面发出http请求,检索响应,然后将该内容返回到发出原始请求的页面异步JavaScript代码

因此,如果您在/your_internal_proxy.foo上设置代理,并且使用jQuery,您可以构建一个JS函数,如下所示:

var foreignContent = {};
var loadPage = function(pageURL,varName) {
  $.ajax({
    type: 'get',
    url: '/your_internal_proxy.foo',
    data: {
      url_to_get: pageURL
    },
    success: function(result) {
      foreignContent[varName] = do_something_to( result );
    }
  });
};​
然后,要将内容加载到JS变量中:

loadPage('http://www.google.com/','goog');
loadPage('http://stackoverflow.com','stack');

如果您试图从外部域加载页面,您将遇到。您可以通过在自己的站点上设置一个简单的代理来绕过此限制。这是一段服务器端代码,其功能是代表您向外部页面发出http请求,检索响应,然后将该内容返回到发出原始请求的页面异步JavaScript代码

因此,如果您在/your_internal_proxy.foo上设置代理,并且使用jQuery,您可以构建一个JS函数,如下所示:

var foreignContent = {};
var loadPage = function(pageURL,varName) {
  $.ajax({
    type: 'get',
    url: '/your_internal_proxy.foo',
    data: {
      url_to_get: pageURL
    },
    success: function(result) {
      foreignContent[varName] = do_something_to( result );
    }
  });
};​
然后,要将内容加载到JS变量中:

loadPage('http://www.google.com/','goog');
loadPage('http://stackoverflow.com','stack');


虽然Ajax可能是一种方式,但这取决于您所说的远程URL是什么意思。由于javascript跨域限制,Ajax将只适用于与javascript源于的域具有相同域的url。有各种解决办法,但大多数需要远程域的合作。我听说过使用YQL作为中介,但从未尝试过。最简单的方法是在您自己的服务器上托管一个代理。

虽然Ajax可能是一种方式,但这取决于您所说的远程URL是什么意思。由于javascript跨域限制,Ajax将只适用于与javascript源于的域具有相同域的url。有各种解决办法,但大多数需要远程域的合作。我听说过使用YQL作为中介,但从未尝试过。最简单的方法是在您自己的服务器上托管代理。

否,除非您使用的是node.js=确实如此。看看jQuery的功能。你的在线研究结果在哪里?很明显,它导致了stackoverflow;你能提供更多的信息吗?我可以调用远程URL,也可以将URL存储在变量中,当然!我甚至可以使用XHR从同一个域页面获取responseText。我无法通过js.No将google.ca中的HTML加载到js变量中,除非您使用的是node.js=确实如此。看看jQuery的功能。你的在线研究结果在哪里?很明显,它导致了stackoverflow;你能提供更多的信息吗?我可以调用远程URL,也可以将URL存储在变量中,当然!我甚至可以使用XHR从同一个域页面获取responseText。我无法通过js将google.ca中的HTML加载到js变量中。好吧,如果远程URL是同一个域,那么肯定是的。同意:但由于他没有指定任何其他细节,我假设它是同一个域Yea,假设无罪-不幸的是,它不是同一个域。我编辑了我的问题。在这种情况下,请检查@Ken Redler,因为他为您提供了答案。好吧,如果远程URL是同一个域,那么当然是。同意:但由于他没有指定任何其他细节,我假设它是同一个域。是的,假设无罪-不幸的是,它不是同一个域。我编辑了我的问题。在这种情况下,检查@Ken Redler,因为他有答案给你..或者使用JSONP,如果远程url支持..或者使用JSONP,如果远程url支持它