script标签“<script src”都是按顺序下载的,如果某个文件下载失败,则会触发onerror事件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Test Page</title>
<script type="text/javascript">
window.onerror = function () {
alert('error');
}
</script>
<script type="text/javascript" src="undefined.js"></script>
</head>
<body>
<script type="text/javascript">
alert('a');
</script>
</body>
</html>
下面事件的顺序就是error,a……
也就是说,jQuery的$如果发生未定义的时候,并不是因为脚本文件过大导致的未下载完成,可以监测onerror事件。