如果我使用本地 jquery.js 文件,jQuery 代码将不起作用,为什么?

标签 jquery file local

比方说这是我的页面..

<!doctype html>
<html>
  <head>
  </head>
  <body>
    <script src="jquery.js"></script>
    <script type="text/javascript">
      $(document).ready(function(){
      });
    </script>
    <div id="div1"></div>
  </body>
</html>

如您所见,我正在使用本地 jQuery 文件 ( jquery.js ),因此每次我编写 jQuery 代码时,知道我的页面和 jquery.js 都无法工作。在同一级别..

但是当我在线使用 jQuery 文件时,例如这样

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>

一切正常..

我还尝试输入 <script></script><head>但没有任何效果

P.s.我下载了在线使用的相同文件并在本地使用。

最佳答案

这是一个编码问题。您的 page.html 文件采用 UTF-16 格式(尽管它包含错误的 meta 标记,表明它使用 UTF-8),但 jquery.js 文件不是(它要么是 ASCII、Windows-1252/ISO-8859-1,要么是 UTF-8 - 哪一种并不重要,它坚持所有这些字符的共同点)。

我建议更正 page.html 的编码(使其实际上为 UTF-8)。这可能会澄清它。但如果没有,或者如果您确实想要 UTF-16(例如,您主要使用非西方脚本制作页面),您可以使用 charset attributescript 元素上告诉浏览器在获取脚本时会发生什么。

我是这样到达那里的:当我访问 the link you posted 时,我在控制台中的 jquery.js 中收到“非法 token ”错误(在 Chrome 和 Firebug 中),并且显示的 jquery.js 文件内容是乱码,主要显示在东亚字符集中。如果我直接请求资源,就不会有这个问题。这立即让我想到“编码问题”并查看 page.html。快速浏览一下,发现它是 UTF-16 格式的。仔细检查 jquery.js 文件是否也是 UTF-16 格式(可能是这样,尽管我永远不会以这种方式编码 JavaScript,但这会非常浪费),并发现它位于与 ASCII 兼容的编码(例如,不是 UTF-16)。

如果您不是 100% 确定您明白我所说的 page.html 采用 UTF-16 而 jquery.js 采用 UTF-8或类似的,我建议阅读 The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)作者:Joel Spolsky 以及 unicode.org 上的各种常见问题解答,特别是 the main onethe one discussing the various UTFs and the BOM .

关于如果我使用本地 jquery.js 文件,jQuery 代码将不起作用,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5926701/

相关文章:

javascript - 带有 href 标签的图片库

c++ - 从 C++ 中的文件中读取多线程?

javascript - 从函数内部为变量赋值

jquery - 具有编辑/删除行为的 jqGrid 自定义按钮

iOS : Share with UIActivityViewController & Default applications

c# - C# 如何知道某个文件将触发哪个进程

jquery - 使用 jQuery 或 Javascript 写入本地文件

python - 为什么我收到 "Local variable unused in function"警告?

Python:访问另一个文件中的函数中的变量

javascript - 为什么 setInterval 在上次迭代后不调用匿名