【问题标题】:javascript error: Expected 'html' and instead saw 'script'javascript 错误:应为“html”,但看到“脚本”
【发布时间】:2023-10-09 12:36:01
【问题描述】:
<script type="text/javascript">
    $('#footer').css('top', $('#text').outerHeight() + 125 + 'px');
</script>​

使用 jquery,但如果我在 jslint 中检查,总是在第 1 行第 2 行出现错误。

有什么想法吗?

【问题讨论】:

  • 如果那是一个“.js”文件,你不要在其中放置&lt;script&gt; 标签。它应该是 100% 的 JavaScript 代码。
  • jsfiddle.net/dennym/GK2br 和它没有 js 文件,它是一个 html 站点中的脚本
  • @xdazz: 可以,只要你给它代码或整个页面。

标签: javascript jquery jslint


【解决方案1】:

script 标签不是 JavaScript 的一部分。 JSLint 仅用于处理 JavaScript 文本。你只在这个位上使用它:

$('#footer').css('top', $('#text').outerHeight() + 125 + 'px');

JSLint 将允许您发布带有嵌入脚本标签的 HTML 页面,但您必须发布的不仅仅是 只是 脚本标签。例如,可以这样:

<html><body><script>
$('#footer').css('top', $('#text').outerHeight() + 125 + 'px');
</script></body></html>

...除了不喜欢我没有定义 $ 的事实(只是因为我把它放在一起)。

【讨论】:

    【解决方案2】:

    不要在 JsFiddle 的 JavaScript 部分(或外部 .js 文件)中添加 &lt;script&gt; 标签。

    固定演示:http://jsfiddle.net/GK2br/6/

    【讨论】:

      【解决方案3】:

      “容忍 HTML 片段”JSLint 选项将抑制该警告。这将允许您使用不是完整 HTML 文档的嵌入式 JavaScript 对 HTML 文件进行 lint。如果您要动态加载 HTML 片段并将它们注入元素,这会很有帮助。

      例如,您可能有一些 jQuery UI 选项卡,其内容是从单独的文件中动态加载的。这些文件中的每一个都可能只包含主 HTML 文档中的 div 标签的内容。如果出于某种原因,这些 HTML 片段包含您需要 lint 的 JavaScript,则选择该选项将抑制有关期望看到 &lt;html&gt; 标记的投诉。

      【讨论】: