2016-06-11 5 views
1

私のajaxコードでは、私はhtml応答を取得します。ページ全体をこのHTMLレスポンスに置き換えるにはどうすればよいですか?私はwindow.location.hrefしか見つけられません。これは、URLレスポンスをredirctすることができます。jQuery - ページ全体へのHTML応答を返す

マイコード:

$('#btn').click(function(){ 
    $.ajax({ 
     url: '/someurl', 
     data: {'key': value}, 
     type: 'POST', 
     success: function(html_data) { 
      # how to load this html_data into the whole page? 
     }, 
     error: ... 
    }); 
}); 

答えて

1

jQueryのreplaceWithそれはあなたのために終らなければならない;)datahtmlは、サーバから受信される

$("html").replaceWith(data); 

...

次のようになります

全体のコード...

$.get("yourdomain.com/fileToLoad.html", function(data) { 
    $("html").replaceWith(data); 
}); 

jQueryの詳細はこちら

http://jquery.com/

+0

こんにちは、私は質問に自分のコードを追加します。 "jquery.js:5894 Uncaught HierarchyRequestError: 'node'で 'replaceChild'を実行できませんでした: '#document-fragment'タイプのノードは存在しない可能性があります($ html ' '#document'タイプのノードの中に挿入されました。 " – Joe

+0

この問題を解決するには、$( 'html').html(html_data)を使用します。どうも! – Joe

+0

うれしかったよ:) – shramee

0

window.documentは、全体のDOMをcontaingオブジェクトです。

コンソールのwindow.documentに書き込んでみると、現在表示中のページ全体の構造が表示されます。 body要素のみが必要な場合は、タグでその要素を探し、その内部の内容を置き換えます。

編集1:

実際にはあなたが正しいです。私はそれをテストしなかった。

しかし、あなたはでそれを行うことができます。

document.open(); 
document.write(your_html); 
document.close(); 

コンソールでテストされています。

+0

こんにちは、 'window.document = html_data'のようですか?しかし、応答がありません... – Joe

関連する問題