2011-02-11 17 views
0

以下は、Ajaxリクエストに対して持っているコードのスニペットです。要求は機能しますが、要求が処理されると、ページはCSSなしで表示されます(同じディレクトリにすべてがあるにもかかわらず)。これをテストするために、私はすでに存在していた自分のサイト上のページをリクエストしました。どんな助け?前もって感謝します。 Ajaxを介したページでCSSを注入Ajaxリクエストは機能しますが、CSSはありません

<html> 
<head> 
<script type="text/javascript"> 
function loadXMLDoc() 
{ 
var xmlhttp; 
if (window.XMLHttpRequest) 
    { 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    { 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","ajaxtest.html",true); 
xmlhttp.send(); 
} 
</script> 
</head> 
<body> 
<div id="myDiv"><h2>Let AJAX change this text</h2></div> 
<button type="button" onclick="loadXMLDoc()">Change Content</button> 
</body> 
</html> 
+0

'ajaxtest.html'はCSSファイルをロードしていますか? –

+0

コードをさらに追加できますか?あなたはmyDivで何を持っているか?また、何を返すのですか? –

+0

はい、私はすでに自分のページに存在するページへのリクエストを指していましたが、Ajaxリクエストで表示されていないときはすべてのCSSがそこにあります。 – dzi

答えて

1

は、すべてのブラウザでサポートされていません(インラインか<link>タグによる)。

解決策は、Ajaxコールを含むページにajaxコンテンツのCSSをロードすることです。

0

W3 Schoolsによれば、スタイルシートの<link>要素は、文書<head>にのみ表示されます。

<div>の中に外部ファイル全体の内容を含めると、それらのファイルはロードされません。

0

問題はH2タグをinnerHTMLで上書きしてしまうことです。

<h2 id="myDiv">Let AJAX change this text</h2> 

これはh2を維持します。それとも、AJAXが戻って渡す持っている必要があります。

<h2>What I want to change it to</h2> 
0
あなたはAjaxでリクエストpege内部<スタイル>要素内にあなたのCSSを移動

。トリックをする必要があります。

2番目の方法は、あなたがリクエストした魔女のページのCSSファイルにajaxでリクエストしたページのCSSを挿入することです。

関連する問題