1

onload イベントを使用して HTML 本文から JavaScript 関数を呼び出しています。JavaScript 関数は正常に実行されますが、HTML 本文の内容が表示されません。

JavaScript から HTML 本文に戻る際に問題があると思います。

コードは次のようになります。

<html>
<script type="text/javascript">
function display()
{
 document.write("You just executed JavaScript code");
 return true;
}
</script>

<body onload="display();">
<p>We are in HTML now</p>
</body>
</html>

これにより、ブラウザに「JavaScript コードを実行しました」というテキストが表示されます。ただし、タグの innerHTML は表示されません。

タグの onload イベントを次のように変更しました。

<body onload="return display();">

そして、これでも JavaScript のみを実行します。

4

5 に答える 5

4

メッセージをアラートとして表示したいだけの場合は、これを試してください。

 <script type="text/javascript">
 function display()
 {
 alert("You just executed JavaScript code");
 return true;
 }
</script>
</head>
 <html>
 <body onload="display();">
 <p>We are in HTML now</p>
</body>

そうしないと

 <script type="text/javascript">
 window.onload=function()
 {
document.getElementById("js").innerHTML = "You just executed JavaScript code";
return true;
}
</script>
<body>
<p id="js"></p>
<p>We are in HTML now</p>
</body>
</html>
于 2012-07-11T06:15:12.223 に答える
1

Document.writeは、bodyタグ内のコンテンツを置き換えます。

このようなことを試してください。

<html>
<script type="text/javascript">
function display()
{
 document.getElementById("text-from-js").innerHTML = "You just executed JavaScript code";
 return true;
}
</script>

<body onload="display();">
<p>We are in HTML now</p>
<p id="text-from-js"></p>
</body>
</html>
于 2012-07-11T06:08:23.137 に答える
1

前の回答が言ったように。document.write目的には使用できません。また、どこでも使用しないことを強くお勧めします。その悪い習慣です。

あなたの目的のために、前に/追加するdocument.body.innerHTML

元:document.body.innerHTML += 'You just executed javascript code';

または何かのような

document.body.appendChild(document.createTextNode('You just executed javascript code'))

すべきです。

于 2012-07-11T06:15:07.577 に答える
1

https://developer.mozilla.org/en/document.writeに従って

ドキュメントの読み込みが完了すると、 を呼び出すdocument.write()と、実際には最初に が呼び出さdocument.open()れ、現在読み込まれているドキュメントが新しい Document オブジェクトに置き換えられます。したがって、コードで行っていることは、元のドキュメントを「You just execute javascript code」という文字列のみを含むドキュメントに置き換えることです。

したがって、document.writeテキストをインラインで配置するために使用する場合は、次のように使用する必要があります。

<html>
<body>
  <p>We are in HTML now</p>
  <script>
    document.write('You just executed javascript code');
  </script>
</body>
</html>

読み込みが完了した後にドキュメントにテキストを挿入する場合は、 などの別の方法を使用する必要がありますinnerHTML

于 2012-07-11T06:01:40.243 に答える
1

こんにちはネオンフラッシュ、私はあなたの問題にいくつかの作業を行いました.私はまた、問題がどこにあるかについて調査し、いくつかの興味深い点を見つけまし た。

またはあなたが使用することができます

通常、する代わりに

document.write
someElement.innerHTML
document.createElement with an someElement.appendChild.

jQuery のようなライブラリを使用し、そこにある変更関数を使用することも検討できます: http://api.jquery.com/category/manipulation/

于 2012-07-11T06:04:13.250 に答える