我有一个页面,其中正在加载
jquery其他js:
<script src="/eiv/javascripts/jquery-1.3.2.min.js" type="text/javascript"></script> <script src="/eiv/javascripts/jquery.jeditable.js" type="text/javascript"></script> <script src="/eiv/javascripts/jquery-ui-1.7.1.custom.min.js" type="text/javascript"></script> <script src="/eiv/javascripts/corner.js" type="text/javascript"></script> <script src="/eiv/javascripts/jquery.form.js" type="text/javascript"></script> <script src="/eiv/javascripts/validationdate.js" type="text/javascript"></script>
我正在加载标签如下:
<%if (tabnum == 1) {%> <script type="text/javascript"> $(document).ready(function(){ $("#tabs").tabs(); $("#tabs ul li a").corner('7px top'); var $tabs = $('#tabs').tabs(); $tabs.tabs('select',0); dateValidation(); changeOption(); deleteConfirmation(); }); </script> <%} else if (tabnum==2) {%> <script type="text/javascript"> $(document).ready(function(){ $("#tabs").tabs(); $("#tabs ul li a").corner('7px top'); var $tabs = $('#tabs').tabs(); $tabs.tabs('select',1); changeOption(); deleteConfirmation(); }); </script> <%}%>
validationdate.js是我自己构建的js,用于检查日期和其他内容.它将此作为第一行:
document.write('<script type="text/javascript" src=""jquery-1.3.2.min.js""></script>');
问题:
这是生产中的时间..这个页面出错并给出JS错误.这会导致标签不可点击.这个错误间歇性地发生,我似乎无法在我的机器上重现它.两台机器都使用IE浏览器.错误也发生在Firefox中,虽然在Firefox中没有出现小的JS错误.我甚至还有一个没有显示任何JS错误的firebug.
我怀疑错误即将发生,因为validationdate.js也在加载jquery-1.3.2.min.js.这可能是一个错误吗?
顺便说一句,我得到的JS错误是’异常被抓住但没有被抛出..线23’和第23行正在跟随
<script src="/eiv/javascripts/jquery-1.3.2.min.js" type="text/javascript"></script>
解决方法
首先回答你的问题,是的,包括jQuery两次可能导致各种问题.
要修复它,这一行:
document.write('<script type="text/javascript" src=""jquery-1.3.2.min.js""></script>');
应该包装以检查jQuery是否已经存在而不是盲目地再次包含它,如下所示:
if (typeof jQuery == 'undefined') { document.write('<script type="text/javascript" src=""jquery-1.3.2.min.js""></script>'); }
然后,如果jQuery尚未在页面上,它将仅包含它.有一点需要注意,如果你使用的是jQuery的不同(可能更新)版本而不是验证代码的构建,那么有可能会有一些中断.