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

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

文档加载完成后,调用document.write()实际上将首先调用document.open(),它将当前加载的文档替换为新的 Document 对象。因此,您对代码所做的是原始文档替换为仅包含字符串“您刚刚执行了 javascript 代码”的文档。

因此,如果您想使用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

嗨 Neon Flash,我已经针对您的问题做了一些工作。我还研究了问题出在哪里,然后我发现了一些有趣的点希望这会对您有所帮助 检查这里

或者你可以使用

通常,而不是做

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

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

于 2012-07-11T06:04:13.250 回答
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 回答