我们的网站记录客户端javascript错误。一小部分网站访问者在我们的主页$()处理程序中收到JS错误:
未捕获的TypeError:$(...)。对话框不是函数
显然加载了jQuery,但是$()。dialog()函数(jQuery UI)不存在。 index.html文件在正文的末尾有脚本标记,首先加载jQuery,然后像所有示例一样显示jQuery UI:
<html>
<head>
...
</head>
<body>
...
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.10.3.custom.min.js"></script>
...
<script type="text/javascript" src="js/ctg.js" ></script>
</body>
</html>
最后一个JS文件的处理程序如下:
$(function() {
setJSErrorHandler();
...
$(".dlg").dialog({ //<--- TypeError here
autoOpen : false,
modal : true,
...
});
});
我已经查看了许多关于文档就绪事件处理和jQuery的问题,但我不知道上述HTML和JS代码结构会如何发生这种错误。它适用于除少数访问者之外的所有访问者,让我想知道是否存在微妙的计时问题,或者可能是执行错误的旧浏览器?