手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:taiwan

javascript中的document.write

这是一个来自mozilla taiwan论坛里的问题,这种情况很多人也应该是遇到过的。。。只是或许都采用了一些绕过的方法来解决的吧?

问题如下:

XML/HTML代码
  1. 請問一下以下的html code有什麼問題嗎?  
  2. 在IE下很正常,  
  3. 但在Firefox裏第二行的document.write好像就不能運作了  
  4. 而且一直顯示"載入中",好像在什麼地方卡住了..  
  5. 原始碼如下:  
  6. ------------------  
  7. <html>  
  8. <head>  
  9. <title> new document </title>  
  10. <script type="text/javascript">  
  11. <!--  
  12. var tmp = new Array(2);  
  13. tmp[0] = new Array(2);  
  14. tmp[0][0] = "lalala";  
  15. tmp[0][1] = "hahaha";  
  16.   
  17. function test(){  
  18. document.write(tmp[0][0]);  
  19. document.write(tmp[0][1]);  
  20. }  
  21. //-->  
  22. </script>  
  23. </head>  
  24. <body>  
  25. <input type="button" value="test" onclick="javascript:test();">  
  26. </body>  
  27. </html>  

但,事实是什么样的的?有人这样回复:

XML/HTML代码
  1. document.write 表示你要重寫整個頁面,所以第一個指令執行後,整個頁面已予清除,第二個指令也就不見了  
  2.   
  3. 另外,JS 語法也不正確,應該是  
  4. document.open();  
  5. document.write(...);  
  6. :  
  7. document.close();  
  8.   
  9. 如果不要清除網頁,可用:  
  10. text = document.createTextNode("blah blah blah");  
  11. document.body.appendChild(text);  

最终,这样就解决了:

XML/HTML代码
  1. <html>  
  2. <head>  
  3. <title> new document </title>  
  4. <script type="text/javascript">  
  5. <!--  
  6. var tmp = new Array(2);  
  7. tmp[0] = new Array(2);  
  8. tmp[0][0] = "lalala";  
  9. tmp[0][1] = "hahaha";  
  10.   
  11. function test(tmp2){  
  12. document.open();  
  13. document.write(tmp2[0][0]);  
  14. document.write(tmp2[0][1]);  
  15. document.close();  
  16. }  
  17. //-->  
  18. </script>  
  19. </head>  
  20. <body>  
  21. <input type="button" value="test" onclick="javascript:test(tmp);">  
  22. </body>  
  23. </html>  

详细原文请查看:http://forum.moztw.org/viewtopic.php?p=41521

Tags: taiwan