2017-08-31 29 views
0

JavaScriptを使用して別のHTMLページを読み込めないのはなぜですか? HTML、CSS、PHPなどを読み込みますが、JavaScriptは読み込みません。 AJAXはそのように動作するはずですか?もしそうなら、JSをAJAXで含む別のHTMLページをどうやってロードできますか?AJAXは別のページでJavaScriptを読み込むことができません

私が何を意味するか、簡単な例応答の

a.php

<!DOCTYPE html> 
<html> 
<body> 

<div id="demo"> 
<h1>The XMLHttpRequest Object</h1> 
<button type="button" onclick="loadDoc()">Change Content</button> 
</div> 

<script> 
function loadDoc() { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     document.getElementById("demo").innerHTML = 
     this.responseText; 
    } 
    }; 
    xhttp.open("GET", "b.php", true); 
    xhttp.send(); 
} 
</script> 

</body> 
</html> 

<!DOCTYPE html> 
<html> 
<body> 
<h1>b</h1> 
<script> 
document.write("Hello World!"); 
</script> 

</body> 
</html> 

b.phpスクリーンショット:
AJAX response screen shot

+0

可能な重複あなたは)(evalにのようなスクリプトタグ内のコードを持っていますスクリプトをinnerHTMLに挿入できますか?](https://stackoverflow.com/questions/1197575/can-scripts-be-inserted-with-innerhtml) – yuriy636

答えて

0

ajax経由で取得するjavascriptコードは単純な文字列であり、実行されないためです。

例:

<script id="helloworld"> 
document.write("Hello World!"); 
</script> 

JS:要求によって

var jsCode = document.getElementById('helloworld').textContent; 
eval(jsCode); 

編集:[の

if (this.readyState == 4 && this.status == 200) { 
    var demoElement = document.getElementById("demo"); 
    demoElement.innerHTML = this.responseText; 
    var scriptTags = demoElement.getElementsByTagName('script'); 

    for(i = 0; i < scriptTags.length; i++) { 
     eval(scriptTag[i].textContent); 
    } 
} 
+0

私の2つの例ではどのように見えますか?コードセクションを両方ともa.phpまたはb.phpに入れますか? –

+0

スクリプトがb.phpで動作するようにしたい –

+0

私の例を私の例に統合するにはどうすればいいですか? –

関連する問題