包含Javascript的奇怪行为

时间:2012-10-28 21:13:43

标签: javascript inclusion

您好我遇到了一些问题,包括我的html项目中的javascript文件。 当我在身体标记之前的末尾包含它时,我的网站无法正常工作。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    </body>

但是,如果我删除了最后的标签,使其看起来像这样

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"/>
</body>

一切正常。

如果我将它包含在头部内,它也可以工作,与语法无关。 为什么它会像这样?

4 个答案:

答案 0 :(得分:1)

对于浏览器兼容性,必须使用第一种形式:

<script src="https://..."></script>

带有明确的结束标记</script>。如果您的代码无效,那么您的真正问题就在于其他地方,而不是您关闭代码的方式。

答案 1 :(得分:1)

  1. 关于<script src="..."></script>
  2. ,做其他人所说的话
  3. 仅使用src="//..."代替src="https://..."或使用未加密的网页(http vs https),访问者将获得混合两种协议的安全警告
  4. 如果您在页面上的任何位置编写了 ,那么在实际包含该文件之前,您将获得引用错误,其中JS将无法找到该函数({{ 1}})你正试图使用​​。
  5. 如果您使用Chrome, 可以使用调试器,并按$:它会将您带到开发者控制台,我确定你会看到各种参考错误。

    在Firefox中,它是CTRL+SHIFT+J,在IE浏览器中CTRL+SHIFT+K

    这与在您尝试使用库或其他类的其他语言中编写相同的前提工作,但​​实际上不会将它们导入到程序的底部。

答案 2 :(得分:0)

可能会有一些竞争条件发生在你身上...如果你能提供完整的代码将会很好......如果你在标题中附上它...那么你的jquery就会成功地进行,然后执行你的身体部位。 ..如果你把它附在体内...然后关闭脚本会产生一些问题...尝试在你的身体标签中更改你的脚本代码放置时播放。

</script>关闭是必须在跨浏览器中工作

这可能会帮助您进行调试。

答案 3 :(得分:0)

为什么要在代码的末尾加载jquery?如果你有一些需要jquery的其他脚本,那么应该在它之后加载它们。因此,要么将所有脚本标记放在头部或主体末尾 - 应该在依赖它的其他文件之前加载jquery。