1个htm页面包含一个js文件,部分代码如下,在IE中,<body onload= 是在页面加载后执行,没有任何问题;在火狐浏览器中,body onload是在页面加在前执行,所以很多元素不存在,失败。这个问题如何解决?  
--------------------------------------------------------------------
绕开这个问题,换个解决思路。
我每次在调用ChangeGetServer()这个函数的时候,必须给依赖一个事件,譬如onclick、onload等,否则直接在js中直接调用ChangeGetServer();函数,总提示Request找不到对象或为空。  这里的sendGET函数没有问题,太长没贴出来。
若能解决这个问题,上面那个问题也就不用考虑了。
先谢谢大家。
-------------------------------------------------------------------
function ChangeGetServer(){
var GameType = document.getElementById("ddlGameType").value;
var GameServer = document.getElementById("ddlGetServer").value;
    Request.sendGET(urlValue+"/Dict/test.aspx?partner_id=js&gameid=1&gameserverid=" + GameServer, showcheckmsg2);
function showcheckmsg2(response){
var result = response.responseText;
var obj = document.getElementById("GameWorld_Info");
if (result == "")
obj.innerHTML = "没有查询到数据";
else (result != "")
obj.innerHTML = result;
obj.style.display = "";
}
}
if("\v"=="v"){ // 这个判断真的只有在IE下才为真,包括IE 8。
document.write("<body onload='ChangeGameType()'></body>");
}
else{
//document.write("<body bgcolor='#3fffff' onload=ChangeGameType()></body>");
alert('');
}

解决方案 »

  1.   

    <script type="text/javascript">函数名</script>把这个放在页面最下面
      

  2.   

    可以将这段js嵌入到body标签中执行
    <body>
    <script>
    //js code
    </scirpt>
    </body>or
    # function addEventHandler(target, type, func) {  
    #             if (target.addEventListener)  
    #                 target.addEventListener(type, func, false);  
    #             else if (target.attachEvent)  
    #                 target.attachEvent("on" + type, func);  
    #             else   
    #                 target["on" + type] = func;  
    #         }  
    #           
    #         addEventHandler(window, "load", function () {  //添加onload事件
    #             //你的js 
    #         });