一个关于document.write()的问题
Index.html中: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>This is a ajax test</title> <script type="text/javascript" src="js/jquery-3.1.1.js"></script> <script type="text/javascript" src="js/test_js.js"></script> <script type="text/javascript"> $(document).ready(function(){ document.write(1); }); </script> </head> <body> <p>this is a page!</p> <button>Click me</button> </body> </html>
输出的结果为:
1
Click me
因为read是在文档加载结束后再调用的,它会覆盖掉前面的文档内容,因为前面的文档流已经close()了,再打开相当于创建一个文档流open(),重新创建了一个文档,理由可以参见http://www.softwhy.com/forum.php?mod=viewthread&tid=13582
一个神奇的问题出现了:
当我改成
test_js.js中: function hide(){ document.write(1); }
并且把最初的代码改成
<script type="text/javascript"> $(document).ready(hide(); </script>
结果变成
1
this is a page!
说明他并没有随着文档结束而加载,而是最先加载的这个hide函数,很奇怪的一点。
由于是刚学习Js,并不了解,先记录下来,以后再说明原因,各位朋友知道的也可以在下面留言,xiexie~