我的JavaScript遇到问题,只在Mac版本的Firefox上遇到问题。唯一的控制台错误是
TypeError:$ .tweets.tweet不是函数
TypeError:$ .smartbanner不是函数
使用这些插件:
http://forsmo.me/jquery.tweet.js/
https://github.com/jasny/jquery.smartbanner
但是,当我尝试通过控制台访问其他脚本中定义的其他Javascript函数时,它们几乎都是未定义的。
如果我将源代码从函数或插件复制并粘贴到控制台中,那么尝试调用它们,代码可以毫无问题地执行。
有没有人知道我如何确定问题的根源?在我看来,JavaScript中可能存在一两个错误,然后逐渐崩溃并打破其他所有错误,但我认为无法确定这些问题发生的位置。
Firefox for Windows或我所知道的任何其他浏览器都没有错误。 Mac正在运行OSX 10.9.5和Firefox 38.0.1。
任何帮助将不胜感激。感谢。
!更新:
我在页面中包含了这个大脚本元素的代码:
<script type="text/javascript" src="/javascript_combine/?file%5B%5D=ls_core_jquery&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fjquery-ui-1.10.2.custom.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fjquery.easing-1.3.min.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fbootstrap.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fjquery.isotope.min.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fjquery.tdautocomplete.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fjquery.sharrre-1.3.4.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fjquery.tweet.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fimagesloaded.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Finfinite_scroll.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fmega_menu.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fjquery.thumbnailslider.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Floadproductimage.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fhighlight_selected_colour.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fjquery.smartbanner.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fsizechartswitch.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fhelperwindow.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Ffield_validate.js&file%5B%5D=%2Fmodules%2Fflynsarmyslideshow%2Fresources%2Fnivo-slider3.2%2Fjquery.nivo.slider.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fla_boutique.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fcolour_squares.js&file%5B%5D=%2Fthemes%2Frapanui%2Fresources%2Fjs%2Fjquery.elevatezoom.js&ver=1.33"></script>
这是我们所有javascript文件的合并版本(以减少页面中加载的文件数)。这两个插件文件包含在此文件中。
然后通过内联脚本元素调用脚本:
<script type="text/javascript">
$(function() { $.smartbanner() } )
</script>
<script src="/themes/main/resources/js/loadtwitter.js" async=""></script>
loadtwitter.js文件的内容:
(function() {
$tweets = $('#tweets');
$tweets.tweet({
username: $tweets.data('username'),
favorites: false,
retweets: false,
count: 3,
avatar_size: 60,
template: '<div class="tweet"><div class="avatar">{avatar}</div><div class="text">{text}{time}</div></div>'
});
})();
有趣的是,当我查看&#39;调试器&#39;在Firefox的检查器窗口中,包含所有JS in的大文件没有出现在资源列表中,即使它确实出现在HTML页面中。
这是否意味着文件由于某种原因没有加载,尽管它位于页面本身?
在Firefox for Windows中,js文件显示在源列表中。