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

时间:2011-05-08 09:45:10

标签: 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。我下载了我在线使用并在本地使用的相同文件。

4 个答案:

答案 0 :(得分:10)

这是一个编码问题。您的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 attribute告诉浏览器什么在获取脚本时期望。

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

如果你不是100%肯定你明白我所说的page.html是UTF-16但是jquery.js是UTF-8还是类似的,我建议你阅读{{ 3}}由Joel Spolsky以及unicode.org上的各种常见问题解答,特别是The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)the main one

答案 1 :(得分:2)

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

您在本地拥有的文件副本有问题。确保路径正确并使用Firebug查看其加载的情况。


编辑对于demo_local,我的Firebug安装会在jquery.js文件中抱怨外来字符。当我查看“脚本”选项卡时,它似乎是Unicode,但是以ASCII格式提供。

答案 2 :(得分:0)

SAM

你在那个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>

答案 3 :(得分:-2)

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