换个顺序,脚本写在页面末端。<body>
……正文区……
<div id="dialog">aaa</div>
<input type="text" id="mk" value="mk">……脚本区……
<script language="javascript">var ab=mk.value;
var log=dialog.innerHTML;alert(log);
alert(ab);</script></body>

解决方案 »

  1.   

    在页面读取时从上向下加载到内存中.
    在页面上,所有的js全局变量(也包括方法体),所有的样式,页面元素,都会被逐一加载.
    当放在外面,是全局变量,,先加载var ab=document.getElementById('mk').value;
    而这时候,页面上是没有'mk'这个元素的,所以应当为null.
    --------------
    防在里面,局部变量,只有函数/方法体被调用时才被加载,并不常驻内存.如1楼所说,你换一下顺序就可以了.