【问题标题】:Returning from JavaScript function to HTML Body从 JavaScript 函数返回到 HTML 正文
【发布时间】:2012-07-11 05:44:24
【问题描述】:

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

我相信,从 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。

【问题讨论】:

  • 这只是为了测试吗?或者您正在处理一些需要的问题?
  • 是的,我想知道该怎么做。
  • 检查我的回答这是 Document.Write() 产生的问题。这个链接对你有帮助吗?
  • 感谢 Sunny 和其他所有人。是的,这些很有帮助,我正在阅读以更好地理解它。

标签: javascript html


【解决方案1】:

如果您只想将消息显示为警报,请尝试此操作。

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

【讨论】:

    【解决方案2】:

    根据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

    【讨论】:

      【解决方案3】:

      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】:

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

        为了您的目的预先/附加到document.body.innerHTML

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

        或类似的东西

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

        应该这样做。

        【讨论】:

          【解决方案5】:

          你好霓虹灯, 我已经针对您的问题做了一些工作。我还研究了问题出在哪里,然后我发现了一些有趣的观点,希望这会对您有所帮助 Check here

          或者你可以使用

          通常,而不是做

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-03-26
            • 2015-01-26
            • 2021-06-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-20
            • 1970-01-01
            相关资源
            最近更新 更多