2012-02-20 16 views
3

jQuery AJAXリクエスト(単純なGETパラメータをロードに渡す)でページ全体をリロードしようとしています。ページ全体をAJAXリクエストでリロードし、GETパラメータを変更しました

$.ajax({ 
    url: "site.php?param="+new_param, 
    cache: false, 
    success: function(content) { 
     $("html").html(content); 
    } 
}); 

あなたが見ることができるように、これは(背景がように突然白とある)<html>ブロックをカスケード接続し、何とかスタイリングが壊れています。

$(document).html(content);のようなトリックも機能しません。

残念ながら、この問題の解決策はまだ見つかりませんでした。前もって感謝します。

+0

AJAXを使用してページ全体をリロードするのはなぜですか?無意味なようです...「window.location」を変更して正常にナビゲートしてください。または必要なコンテンツを引き込むだけです。 – ManseUK

答えて

9

頭のコンテンツをリロードしていない(新しいjavascriptやCSSをロードしていない)場合は、そのようなことを行う必要はありません。コンテンツ自体にコンテンツをロードしようとする必要があります。 <body>

$("body").html(content); 

編集

達成するために、私はあなたがしようとしている何を考えて、あなたがhttps://github.com/defunkt/jquery-pjax

+0

もちろん、あなたは正しいです。私はちょうどそれの周りに迅速かつ簡単な方法があると思った。 – ruhleder

+0

ありがとう!それは私が探していたもののように見えます。 – ruhleder

+0

私はこれを使用し、それは完璧に働いた。 $( "#page-content-wrapper")load( '/検索?距離=' +距離+ '&カテゴリ=' +カテゴリ+ "#ページコンテンツラッパー"); – user1501382

0

をチェックアウトすることができ、完全なHTMLページをロードすると、問題は、あなたが取得のみということですHTMLコードですが、JavaScriptは解釈されず、CSSファイルへのパスが崩れてしまいます。 index.phpファイル内にあり、CSSファイルが同じディレクトリにあるとします。今、AJAXを使用して別のHTMLファイルをロードし、そのコードをdiv内に出力すると、そのファイルは "../css/random_dir/style.css"ファイルを指している可能性があります。今度はそのパスがindex.phpファイルの中でうまくいかないので、スタイリングがうまくいきません。 あなたの新しいコードは、読み込まれていない(読み込まれていない)cssファイルの中に "バックグラウンド"があると予想します。

関連する問題