<HTML> 
<HEAD> 
<TITLE></TITLE> 
<img src="about:blank" id="fileChecker" alt="test"  height="18"/>
<script type="text/javascript">
var oFileChecker = document.getElementById("fileChecker");
function changeSrc(filePicker)
{
    oFileChecker.src = filePicker.value;
}
oFileChecker.onreadystatechange = function ()
{
    if (oFileChecker.readyState == "complete")
    {
        checkSize();
    }
}
function checkSize()
{
    var limit  = document.getElementById("fileSizeLimit").value * 1024;    if (oFileChecker.fileSize > limit)
    {
        alert("too large");
    }
    else
    {
        alert("ok");
    }
}
</script>  
</HEAD> 
<BODY> 
<input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)"/>
<input type="text" size="4" value="10" name="hndnn" id="fileSizeLimit"/> K
</BODY> 
</HTML>这样放置运行正确,但把<img src="about:blank" id="fileChecker" alt="test"  height="18"/>放入BODY中时就不行了,好象是因为oFileChecker取不到值,document.getElementById("fileChecker")定义有错吗????

解决方案 »

  1.   

    因为页面执行的时候是从上往下执行的,所以你把<img src="about:blank" id="fileChecker" alt="test"  height="18"/>放入BODY中,它就不能识别,所以会出现错误,<HTML> 
    <HEAD> 
    <TITLE></TITLE> 
    </HEAD> 
    <BODY> 
    <img src="about:blank" id="fileChecker" alt="test"  height="18"/>
    <input type="file" name="file1" id="file1" size="40" onchange="changeSrc(this)"/>
    <input type="text" size="4" value="10" name="hndnn" id="fileSizeLimit"/> K
    </BODY> 
    </HTML>
    <script type="text/javascript">
    var oFileChecker = document.getElementById("fileChecker");
    function changeSrc(filePicker)
    {
        oFileChecker.src = filePicker.value;
    }
    oFileChecker.onreadystatechange = function ()
    {
        if (oFileChecker.readyState == "complete")
        {
            checkSize();
        }
    }
    function checkSize()
    {
        var limit  = document.getElementById("fileSizeLimit").value * 1024;    if (oFileChecker.fileSize > limit)
        {
            alert("too large");
        }
        else
        {
            alert("ok");
        }
    }
    </script> 这样就可以了,记得给分呀
      

  2.   

    你是放入BODY哪了?如果放在BODY的一开始,应该也没有问题呀,你onchange事件调用了。你是不是放在onchange下面了?
      

  3.   

    其实是这样的
    var oFileChecker = document.getElementById("fileChecker");这句话写在上面了,而且他在函数外面,所以,当页面开始加载时,会去解析生成这样一个对象.可是此时页面没有加载完成,document对象不存在呢.只有在页面加载完成以后才有docuement对象.
    具体怎么写,自己应该多想想,呵呵