【问题标题】:Why does this Javascript document.write not execute? [duplicate]为什么这个 Javascript document.write 不执行? [复制]
【发布时间】:2014-10-16 19:49:02
【问题描述】:

当我在 chrome 中启动它时,页面上没有任何内容。

<!DOCTYPE html>
<head><title>test 4000</title><head>
<body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
document.writeln("test")
</script>
</body>
</html>

【问题讨论】:

  • 不应将内联脚本放在引用外部脚本的脚本标签中
  • 也许您尝试直接从磁盘打开此文件(我的意思是不是从服务器)。在这种情况下,Chrome 会尝试查找包含脚本作为文件://ajax.googleapis.com...
  • @JezD ...如果您将其作为本地文件运行,这将不起作用。 src="// 仅在从网络服务器运行时有效。
  • @Guam 你还没有关闭你的&lt;head&gt; 标签,你似乎在打开一个又一个又一个都没有关闭

标签: javascript jquery html


【解决方案1】:

您正在将代码插入到脚本标记中,该标记还用于加载外部脚本 (jQuery)。你应该做一个或另一个。

<script>
    document.writeln("test");
</script>

如果你想要两者都这样做:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
    document.writeln("test");
</script>

reference 状态:

如果 src 有一个 URI 值,用户代理必须忽略元素的内容并通过 URI 检索脚本。

你不需要包含 jQuery 来使用document.writeln()

【讨论】:

  • “type=text/javascript”属性是多余的,顺便说一句。你可以放心地把它拿走。
  • 相关参考是w3.org/TR/REC-html40/interact/scripts.html#edef-SCRIPT,它说:“如果src 有一个URI 值,用户代理必须忽略元素的内容并通过URI 检索脚本。”
  • @hugomg 对。这只是html5。谢谢。
  • 这种行为在 html5 标准中的原因是因为它已经被每个浏览器实现了。所以在实践中,省略脚本类型也是一个“html4”特性。 (这也是为什么 html5 doctype 声明是这样的原因)
  • html 4.01 referenceThe scripting language is specified as a content type (e.g., "text/javascript"). Authors must supply a value for this attribute. There is no default value for this attribute. 尽管浏览器还是假设了它。
猜你喜欢
  • 2013-09-18
  • 1970-01-01
  • 2021-10-17
  • 2018-08-17
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多