Chrome:未捕获的ReferenceError:$未定义

Ian*_*oyd 7 firefox jquery google-chrome

我在网页中使用jQuery.$在Internet Explorer中使用时,它可以正常工作.$在Chrome或Firefox中引用时 ,它会失败并显示错误:

Uncaught ReferenceError: $ is not defined.
Run Code Online (Sandbox Code Playgroud)

截图:

在此输入图像描述

用我的源代码:

<!DOCTYPE html>
<html>
<head>
   <script type="text/javascript" src="jquery-1.7.2.min.js"></script>
   <script type="text/javascript">
      function divClick(sender, event)
      {
//       var chk = $(sender).find("input").first()[0];
         var chk = jQuery(sender).find("input").first()[0];
         alert("Works in ie");
      }
   </script>
</head>
<body>

<div onclick="divClick(this, event)">
    <input type="checkbox">
</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

注意:浏览器被定向到本地文件系统上的文件:

在此输入图像描述

更新:尝试将其更改为jQuery.

更新:Chrome找到jquery文件(即没有404):

在此输入图像描述

Ian*_*oyd 7

这个问题只是为了记录Chrome和Firefox中的错误:

Html File encoding           IE9      Chrome
=========================    =======  ======
Windows-1252                 Works    Works
UTF-8 (without BOM)          Works    Works 
UTF-8 (with BOM EFBB)        Works    Works 
UTF-16 (with LE BOM FFFE)    Works    Fails
UTF-16 (with BE BOM FEFF)    Works    Fails
Run Code Online (Sandbox Code Playgroud)

据推测,Chrome(和Firefox)假设一个单独的script文件具有与该html文件相同的编码.

然后Chrome尝试读取jquery-1.7.2.js为UTF-16,并惊讶地发现该文件是纯粹的(Windows-1252)垃圾.


Sha*_*oli 5

检查路径jquery-1.7.2.min.js是否正确.如果使用firefox或chrome开发人员工具查看文件是否下载,您可以签入firebug.您很可能获得了jQuery文件的404,因为在页面上未定义$,这是jQuery对象的别名.