2012-07-11 54 views
1

我使用onload事件从HTML Body调用JavaScript函数。 JavaScript函数成功执行,但HTML主体内容不显示。从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的。

+0

这是唯一的测试?或者你正在处理一些需要的问题? – Sunny 2012-07-11 05:58:25

+0

是的,我想知道该怎么做。 – 2012-07-11 06:00:21

+0

检查我的答案这是由Document.Write()生成的问题。此链接对您有帮助吗? – Sunny 2012-07-11 06:18:44

回答

1

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

一旦文档加载完成后,调用document.write()实际上会先调用document.open(),这与一个新的文档对象替换当前加载的文件。所以你在做什么你的代码是取代原始文件只包含字符串'你刚刚执行的JavaScript代码'。

所以,如果你想使用document.write放置文本内联,你将不得不使用它,像这样:

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

如果要插入文本文档已加载完成后,你会需要使用另一种方法,如innerHTML

1

嗨氖闪光灯, 我已经做了一些工作,对您的疑难问题也研究有关问题出在哪里,然后我发现了一些有趣的观点希望这将帮助你 Check here

,或者您可以使用

通常情况下,而不是做

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

你也可以考虑使用有像jQuery库和使用的修改功能:http://api.jquery.com/category/manipulation/

1

Document.write正在替换您的身体标记内的内容。

尝试类似这样的东西。

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

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

你的目的预谋/追加到document.body.innerHTML

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

或类似

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

应该做的。

3

如果你只是想显示消息作为警报尝试这一点。

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