让我们以我的页面为例说这个..
<!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
浏览器不应该关心文件是否是本地的[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来托管文件,这自动意味着您无法对文件进行本地引用。尝试包含完整的保管箱链接,看看它是否有效