我有一个加载window.open();
而不是加载页面,是否可以从页面获取html而不打开它?
答案 0 :(得分:1)
使用ajax
和jQuery
:
$.get( "myNewPage.html", function( data ) {
$( "#myNewPage" ).html( data );
});
答案 1 :(得分:1)
正如其他人所说,AJAX(异步JavaScript和XML)是要走的路。像jQuery这样的库提供了一种易于使用的方法。在库之外,JavaScript有一个XMLHttpRequest
对象,您可以使用它来执行相同的操作。
这个想法是向页面发出请求,并在某个回调中返回该页面上的标记,然后使用该标记执行您想要的操作。
以下是一个例子:
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200) {
// the ajax request is done, and the server responded with the html page
// log the result from the ajax request
console.log(xmlhttp.responseText);
}
}
xmlhttp.open("GET","myPage.html",true);
xmlhttp.send();
修改强>
如果您拥有两个域,即发出请求的域和请求的域,则可以使用CORS。这将告诉其他服务器允许来自第一个域的请求。
如果您不拥有这两个域,或者可以访问双方,那么这将变得更加困难。您可以从服务器端发出HTTP请求,也可以查看some other answers on here
答案 2 :(得分:1)
请使用jquery加载方法。
根据文件,
此方法是从服务器获取数据的最简单方法。它是 大致相当于$ .get(url,data,success),除了它是一个 方法而不是全局函数,它有一个隐式回调 功能。当检测到成功的响应时(即textStatus时) 是“成功”或“未修改”),. load()设置的HTML内容 匹配元素到返回的数据。这意味着大部分用途 方法可以很简单。
.load(url [,data] [,complete])
url类型:字符串;包含发送请求的URL的字符串。
数据类型: PlainObject或String;发送到的简单对象或字符串 带有请求的服务器。
完成类型:Function(String responseText, String textStatus,jqXHR jqXHR);执行的回调函数 请求完成时。
参考:Click Here for jquery documentation :Another Stack overflow question on the same lines
答案 3 :(得分:0)
您可能需要查看AJAX请求:https://developer.mozilla.org/de/docs/AJAX