【问题标题】:Where to put JavaScript [duplicate]在哪里放置 JavaScript [重复]
【发布时间】:2013-11-22 22:37:44
【问题描述】:

在 PluralSight,传统 JavaScript 函数部分的 Advanced Techniques in JavaScript and jQuery 类的 5 分钟标记处,Kevin Murray 将他的脚本标签放在结束正文标签之后。

现在可以将脚本放在结束正文标记之后吗?

【问题讨论】:

  • 据我所知,head 和 body 是 html 标记的唯一有效子级,因此它至少是无效标记。
  • ^ 那。 AndyE 的回答也很中肯。
  • 我猜这取决于ok的定义。它当然是功能性的。有些人将其用作 (a) 避免使用 window.addEventListener('load', nameOfYourOnLoadFunctionHere, false); 的一种方式,而另一些人则这样做 (b) 作为确保在脚本之前加载标记的一种方式。我不会提供比我已经暗示的更多的意见。

标签: javascript


【解决方案1】:

您应该将它们放在部分结束之前。这样,您的 html 代码将首先加载,然后该浏览器将处理您的 javascript 代码。因此,如果您的脚本有任何错误或问题,您的页面加载将不会冻结。换句话说,您的 html 代码将加载,如果有任何问题,您的 js 代码将无法工作。另一方面,如果你在 head 部分包含了你的 js 代码并且出现了任何问题,那么你的 html 代码甚至不会加载。

【讨论】:

  • 我认为您的意思是在<body> 部分结束之前。很抱歉没有挑剔,但现在也有一个<section> 元素。只是想清楚并避免混淆。
  • @War10ck,完全没有问题。是的,我的意思是在 关闭之前。在页面底部,没有其他 html 代码。
【解决方案2】:

根据 HTML 标准,将 script 标签放在 body 标签之后是不正确的,几乎没有任何理由这样做。脚本标签最好放在head 元素内,或者如果您有特定原因,则应放在body 元素内。

您可以将 script 标签放在 body 元素的最后而不是放在它之后,在功能上几乎没有区别。文档中的所有元素此时都已存在,因此没有正常理由将其放在正文之外。

将脚本标签放在正文之外很可能适用于所有浏览器,因为它们通常会努力考虑你扔给它们的任何 HTML 式的混乱,但它不遵循规范,所以不能保证所有当前的浏览器实际上可以容忍它,或者任何未来的浏览器都会这样做。

此外,这样的无效代码可能会改变浏览器解释整个 HTML 文档的方式。如果浏览器决定以向后兼容的 quirks 模式解析文档,它会对页面的布局产生根本性的影响。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-29
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    相关资源
    最近更新 更多