2012-07-11 181 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>