从JavaScript函数返回到HTML Body

时间:2012-07-11 05:44:25

标签: javascript html

我使用onload事件从HTML Body调用JavaScript函数。 JavaScript函数成功执行,但不显示HTML Body内容。

我相信,从JavaScript返回HTML Body会出现问题。

以下是代码的外观:

<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。

我将tag中的onload事件修改为:

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

而且,即使这只执行JavaScript。

5 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

根据https://developer.mozilla.org/en/document.write

文档加载完毕后,调用document.write()实际上会先调用document.open(),它会用新的Document对象替换当前加载的文档。因此,您对代码执行的操作是原始文档替换为仅包含字符串'You just execution 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

答案 2 :(得分:1)

嗨霓虹闪光,                我已经对你的问题做了一些工作。我也研究问题在哪里,然后我发现一些有趣的观点希望这对你有帮助 Check here

或者您可以使用

通常,而不是做

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

您还可以考虑使用像jQuery这样的库并使用其中的修改函数:http://api.jquery.com/category/manipulation/

答案 3 :(得分: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>

答案 4 :(得分:1)

正如之前的答案所说。 document.write不能用于您的目的。我强烈地说 建议您不要在任何地方使用它。这是一种不好的做法。

为了您的目的,在document.body.innerHTML

之前添加/附加

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

或类似

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

应该这样做。