为什么我写的代码在IE8和ff上运行正常。但是在IE6下就莫名其妙经常会卡在加载js文件的地方。
页面代码如下:<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" media="all"
href="resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" media="all"
href="css/public.css" />
</head>
<body onunload="unloadMap()" >
<div id="loading">
<div class="loading-indicator">
<img src="images/loading.gif" width="120" height="120"
style="margin-right: 8px; float: left; vertical-align: top;" />
<s:text name="admin.title" />
<br/>
<span id="loading-msg"><s:text name="load.csspic" /></span>
</div>
</div>
<div id="bd">
<script type="text/javascript">
document.getElementById('loading-msg').innerHTML = '<s:text name="load.core" />';
</script>
<script type="text/javascript" src="adapter/ext/ext-base.js"></script>
<script type="text/javascript">
document.getElementById('loading-msg').innerHTML = '<s:text name="load.ui" />';
</script>
<script type="text/javascript" src="ext-all.js"></script>
<script type="text/javascript">
document.getElementById('loading-msg').innerHTML = '<s:text name="init.module" />';
</script>
<script type="text/javascript" src="js/public.js"></script>

<script type="text/javascript">
var loginName='<s:property value="#session.CURRENT_USER.loginName"/>';
var isHidden = <s:property value="#session.CURRENT_USER.roleId" />==0;
var mapType = '<s:property value="mapType"/>';
var locale = '<s:property value="locale"/>';
</script>

                       <script type="text/javascript" src="http://api.51ditu.com/js/maps.js"></script>
<script type="text/javascript" src="locale/defaultVar.js"></script>
<script type="text/javascript" src="locale/ext-lang-<s:property value="locale"/>.js"></script>
<script type="text/javascript" src="js/monitorMap<s:property value="mapType"/>.js"></script>
<script type="text/javascript" src="js/mapPublic<s:property value="mapType"/>.js"></script>
<script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="js/monitorTree.js"></script>
</div>
</body>
</html>一般都是卡在    <script type="text/javascript" src="http://api.51ditu.com/js/maps.js"></script>
在main.js里 我写了onload函数(如下),在ie6里不能弹出“加载完成”,但是ff ie8就可以,ie6和ie8加载js文件机制有什么不同吗。哪位大侠帮我解决这个问题,感激不尽!
window.onload= function(){
alert("加载完成");
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'under';
// 去除加载层
Ext.get('loading').remove(); var mainPanel = new Ext.Panel({
region : 'center',
layout : 'border',
items : [mapContainer, monitorGrid]
}); // 定义主界面
var vp = new Ext.Viewport({
layout : 'border',
items : [leftPanel, mainPanel]
});
mainMap.initMap('mapPanel');
}

解决方案 »

  1.   

    告诉你们老板,你太out了,现在都快2012了,还用ie6,赶紧装ie9,装ie9是买船票的必备条件
      

  2.   

    使用Onload事件判断加载外部js文件是否完成,IE6并不支持。我尚未试。
    看看这个:http://wenwen.soso.com/z/q281282568.htm?sp=3001
    不知道有帮助不?
      

  3.   

    你在每个js文件后面都加个alert一下,看看哪个js文件卡了
      

  4.   

    加载 <script type="text/javascript" src="http://api.51ditu.com/js/maps.js"></script> 卡了
    问题是 加载到时间了 数据没加载完,IE6是直接跳过去执行下面的吗
    在IE8和ff是能继续执行剩余代码的。IE6不知道为什么就进不了window.onload函数。
    谁能推荐一个好用的 像firedebug的 能在ie下面调试,看执行过程的工具吗。
    感激不尽!
      

  5.   

    强制IE8 。呵。省得烦。
    在系统前端做个版本判断。不是IE8,直接弹出更新下载。
      

  6.   

    我测试 发现IE6下每次加载ext-all.css文件时都失败,然后不能继续往下加载。不知道是不是超时了,如果是超时,能设置这个加载时间么。急切盼望哪位大侠帮我解决这个心病。。
      

  7.   

    <link rel="stylesheet" type="text/css" media="all"
    href="resources/css/ext-all.css" />去掉试试<script type="text/javascript">
    var loginName='<s:property value="#session.CURRENT_USER.loginName"/>';
    var isHidden = <s:property value="#session.CURRENT_USER.roleId" />==0;
    var mapType = '<s:property value="mapType"/>';
    var locale = '<s:property value="locale"/>';
    </script>
    去掉试试
      

  8.   

    <script type="text/javascript" src="lyby.js" onreadystatechange="alert(this.readyState)"></script>也许以上东西可以帮助到你,在IE下,标签支持onreadystatechange事件,文件加载的状态可以通过readyState来判断,这个东西我是告诉你了,具体使用请google or baidu这东西。