JavaScript:具有 SRC 属性的内联脚本?

IT技术 javascript include
2021-01-20 21:53:01

我习惯于像这样包含和使用 JS:

<script type='text/javascript' src='/path/to/script.js'></script>
....
<script type='text/javascript'>
    alert('Do some stuff here, using resources defined in script.js.');
</script>

出于好奇,有没有人知道使用 src 属性的内联脚本的规则,例如:

<script type='text/javascript' src='/path/to/script.js'>
    alert('Do some stuff here, using resources defined in script.js.');
</script>

我可以测试在各种浏览器中会发生什么,但想知道官方行为是什么。

3个回答

它是一个或另一个,而不是两者。标签src属性<script>优先于标签的主体。

HTML 4.01 规范

脚本可以在 SCRIPT 元素的内容中或在外部文件中定义。如果src未设置属性,则用户代理必须将元素的内容解释为脚本。如果src有一个 URI 值,用户代理必须忽略元素的内容并通过 URI 检索脚本。

没有意识到我在比赛。:-)
2021-03-16 21:53:01
这是更新的HTML5 规范的链接(请参阅代码示例上方的文本)
2021-04-08 21:53:01

HTML 规范指出

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

HTML 4 标准

如果未设置 src 属性,用户代理必须将元素的内容解释为脚本。如果 src 有一个 URI 值,用户代理必须忽略元素的内容并通过 URI 检索脚本。