Javascript通过添加临时iframe获取DOM源代码

Javascript通过添加临时iframe获取DOM源代码,javascript,Javascript,我目前正在通过首先添加iframe从页面获取DOM源: <iframe src="http://127.0.0.1/mypage.html" id="my_iframe"></iframe> 这很有效,但我的问题是: 我可以做同样的事情,但在运行javascript代码之前不必在正文中包含iframe吗?是的,您可以: var iframe = document.createElement("iframe"); iframe.setAttribute("src", "h

我目前正在通过首先添加iframe从页面获取DOM源:

<iframe src="http://127.0.0.1/mypage.html" id="my_iframe"></iframe>
这很有效,但我的问题是:

我可以做同样的事情,但在运行javascript代码之前不必在正文中包含iframe吗?

是的,您可以:

var iframe = document.createElement("iframe");
iframe.setAttribute("src", "http://127.0.0.1/mypage.html");
var jframe = $(iframe);
$(jframe).ready(function() {
    var data = jframe.contents().find("#data");
    // Do something with data
}
然而,除非两个页面都在同一个域中,否则由于一种叫CORS的恼人但至关重要的安全措施,这注定会在生产中失败。除非请求页面的服务器的CORS头设置为允许页面从中请求内容,否则无法执行此操作

如果CORS没有阻止您这样做,那么您可以使用
XMLHttpRequest
API以不同的方式来做

var oReq = new XMLHttpRequest();
oReq.addEventListener("load", function() {
  var fragment = document.createDocumentFragment();
  fragment.body.innerHTML = this.responseText;
  var data = $(fragment).find("#data");
  // Do something with data
});
oReq.open("GET", "http://127.0.0.1/mypage.html");
oReq.send();
是的,你可以:

var iframe = document.createElement("iframe");
iframe.setAttribute("src", "http://127.0.0.1/mypage.html");
var jframe = $(iframe);
$(jframe).ready(function() {
    var data = jframe.contents().find("#data");
    // Do something with data
}
然而,除非两个页面都在同一个域中,否则由于一种叫CORS的恼人但至关重要的安全措施,这注定会在生产中失败。除非请求页面的服务器的CORS头设置为允许页面从中请求内容,否则无法执行此操作

如果CORS没有阻止您这样做,那么您可以使用
XMLHttpRequest
API以不同的方式来做

var oReq = new XMLHttpRequest();
oReq.addEventListener("load", function() {
  var fragment = document.createDocumentFragment();
  fragment.body.innerHTML = this.responseText;
  var data = $(fragment).find("#data");
  // Do something with data
});
oReq.open("GET", "http://127.0.0.1/mypage.html");
oReq.send();

没有得到你想要做的。你想要没有iframe的东西吗?在DOM中,你可以针对
文档
窗口
、和
正文
——所有这些都应该能够为你提供页面上的内容,但你没有得到你想要的。您想在没有iframe的情况下实现此功能吗?在DOM中,您可以针对
文档
窗口
、和
正文
——所有这些都应该能够为您提供页面上的内容