0

これはかなり基本的な質問だと思いますが、jQuery には比較的慣れていないので、誰かが助けてくれることを期待していました。

基本的に、HTML スニペットをページにロードする必要があります。これは、スニペットに HTML のみが含まれている場合は正常に機能しますが、スクリプトが含まれている場合は機能しません。

わかりやすくするために、コードを最小限に抑えました。これは index.html です:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>    
</head>
<body>
<h1>Heading</h1>
<div id="banner"></div>
<script>
$(document).ready(function(){
    $('#banner').load('banner.html');
});
</script>

</body>
</html>

また、banner.html には次のものが含まれています (例として)。

<h2>Subheading</h2>
<script>
document.write('Hello');
</script>

スクリプトは実行されますが、何らかの理由で index.html と banner.html の残りの HTML が取り除かれます (つまり、"Hello" だけが表示され、他には何も表示されません)。

どんな助けでも大歓迎です!

4

2 に答える 2

4

document.writeページがドキュメントに書き込みをロードした後、同時に現在ドキュメント内にある他のすべてを上書きするため、文字列「hello」のみが表示されます。

ドキュメント write を削除するだけです:

<h2>Subheading</h2>
<p id="test"></p>
<script>
    document.getElementById('test').innerHTML = 'hello';
</script>
于 2013-07-23T09:31:15.403 に答える
0

これは、banner.html がロードされたときに発生するためです.. banner.html 内のスクリプトが実行され、ドキュメントに「hello」が書き込まれます (ここのドキュメントは index.html 全体です)。

これを理解する 1 つの方法は、ドキュメント全体ではなく、banner.html の特定のコンテンツを置き換えることです。

バナー.html

<h2>Subheading</h2>
<div id="divID"></div>
<script>
  $('#divID').html('hello');  //using jquery .. gets the element with id as divID and replace the HTML 
 </script>

ここでは、enrite ドキュメントを置き換えるのではなく、id が「divID」である div のみを置き換えています。

于 2013-07-23T09:32:25.813 に答える