【问题标题】:Who does my script tag effect the page rendering?我的脚本标签会影响谁的页面渲染?
【发布时间】:2011-02-07 12:45:53
【问题描述】:

我有这个代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/javascript" href="http://code.jquery.com/jquery-1.5.min.js" />
        <title>JQuery Demo 1</title>
        <style type="text/css">
            #box
            {
                background-color: #ff0000;
            }
        </style>
        <script type="text/javascript">


        </script>
    </head>
    <body>
        <div id="box">----Text----!</div>
    </body>
</html>

当我包含来自 Google 的 Jquery 文件时,div“框”不再是红色的。当我删除 JQuery 文件时,它再次变为红色。为什么?

【问题讨论】:

  • 另外,当我删除: div 完全消失了!

标签: javascript jquery html


【解决方案1】:

尝试script元素使用自闭语法,例如

<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.min.js"></script>

...指向脚本文件的正确属性是src,而不是href

See it on jsFiddle.

【讨论】:

  • 谢谢,问题解决了。我想知道为什么会这样,如果你不介意的话。 :)
  • @Tim,我已经晚了整整 60 多秒...那些该死的高级用户和他们的忍者方式...=)
  • @Tim 你无法回答所有[javascript]问题:P
  • 你们这么快就帮到我了!!
  • @the_archer 这是我认为的怪癖之一 - 显然 旧浏览器可能无法理解 &lt;script&gt; 标签已结束。 Source
【解决方案2】:

在 XHTML 中,&lt;script /&gt; 表示“完整的脚本元素”(注意,浏览器根据内容类型 HTTP 标头而不是 Doctype 来决定文档是 XHTML 还是 HTML)。

在 HTML 中,&lt;script /&gt; 表示“以&gt; 字符开头的脚本的开始标记”,但由于历史原因,它被视为“具有有趣属性的脚本的开始标记,我将忽视”。

因此,您打开了一个脚本元素,但直到 second 脚本元素的 &lt;/script&gt; 标记才关闭它。 &lt;style&gt; 元素位于脚本内部,因此它被视为 JavaScript 而不是 HTML。由于脚本指定了src,因此内联脚本(包括样式元素)将被忽略。

【讨论】:

    猜你喜欢
    • 2016-06-20
    • 2020-09-22
    • 2012-07-03
    • 2018-03-08
    • 1970-01-01
    • 2011-07-18
    • 2011-06-18
    • 1970-01-01
    • 2015-02-26
    相关资源
    最近更新 更多