我有一个主文件(script.js),其中$.getscript
个命令连接所有脚本集。正在以下列方式加载此文件:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8;IE=edge;chrome=1">
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="stylesheet" type="text/css" href="/js/jquery-ui-1.12.1/jquery-ui.min.css">
<script type="text/javascript" src="/js/jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="/js/jquery-ui-1.12.1/jquery-ui.min.js"></script>
<script src="/js/contextmenu/dist/jquery.ui.position.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/js/script.js"></script>
主文件按以下顺序加载脚本:
$(document).ready(function(){
$.getScript( "SITENAME/js/general.js", function(){});
$.getScript( "SITENAME/js/admin.js", function(){});
$.getScript( "SITENAME/js/building.js", function(){});
$.getScript( "SITENAME/js/fight.js", function(){});
$.getScript( "SITENAME/js/items.js", function(){});
$.getScript( "SITENAME/js/locations.js", function(){});
$.getScript( "SITENAME/js/stats.js", function(){});
$.getScript( "SITENAME/js/trade.js", function(){});
$.getScript( "SITENAME/js/bots.js", function(){});
$.getScript( "SITENAME/js/chat.js", function(){});
});
除了包含其他脚本正在使用的主要功能的general.js之外,几乎所有脚本都使用$(document).ready()
激活。没有像$(document).ready()
这样的加载条件,只是简单的函数声明,如:
function getData( val ){
return $.when(
$.ajax('SITENAME/ajax.php', {
data: val,
type: 'POST'
})
);
}
在Chrome和FF中,一切都运行良好,但在IE中则不然。当我尝试从fight.js调用getData()
时,IE会抛出SCRIPT5009错误“getData is undefined”。
我确定已经加载了general.js(我在general.js中使用了alert('loaded')
测试)。我试图通过<script>
标记明确加载它,但这也不起作用。
为什么IE看不到该文件中的函数?