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



让我们以我的页面为例说这个..

<!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>但没有任何效果

附言我下载了我在线使用的相同文件并在本地使用它。

> 这是一个编码问题。您的page.html文件是 UTF-16(尽管它包含一个错误的 meta 标签,表示它使用的是 UTF-8),但jquery.js文件不是(它要么是 ASCII、Windows-1252/ISO-8859-1 或 UTF-8 - 哪个并不重要,它坚持使用它们共有的字符)。

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

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

如果你不是100%确定你理解我所说的page.html是UTF-16,但jquery.js是UTF-8或类似的东西,我建议你阅读Joel Spolsky的《每个软件开发人员绝对,肯定必须了解Unicode和字符集(没有借口!)的绝对最小值》,以及关于 unicode.org 的各种常见问题解答,特别是主要的FAQ和讨论各种UTF和BOM

的FAQ。

浏览器不应该关心文件是否是本地的[Web服务器的本地,大概...?]。

本地文件的副本有问题。确保路径正确,并使用 Firebug 查看其加载发生了什么。


编辑 为了您的demo_local,我的Firebug安装抱怨jquery.js文件中的外语字符。当我查看"脚本"选项卡时,它似乎是 Unicode 格式,但以 ASCII 形式提供。

山姆

你在那个jquery中有一些奇怪的代码。

看起来像jQuery.js本地是错误的

请从这里下载

http://code.jquery.com/jquery-1.6.min.js

你能试试以下吗

标准文档类型

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">

并将脚本更改为

<script type="text/javascript">
</script>

我可以看到您正在使用dropbox来托管文件,这自动意味着您无法对文件进行本地引用。尝试包含完整的保管箱链接,看看它是否有效

相关内容

  • 没有找到相关文章

最新更新