从页面获取html而不是加载页面

时间:2015-07-02 16:20:09

标签: javascript html

我有一个加载window.open();

页面的按钮

而不是加载页面,是否可以从页面获取html而不打开它?

4 个答案:

答案 0 :(得分:1)

使用ajaxjQuery

$.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