我可以使用<link>标签加载javascript代码吗?

joh*_*rry 28 html javascript css

我可以<link>在我的网站上使用标记加载JavaScript代码吗?

例如,我有一个javascript文件test.js,其中包含简单的代码alert('hello');

我可以使用以下命令显示弹出窗口:

<link href="test.js"></link>
Run Code Online (Sandbox Code Playgroud)

bob*_*nce 40

没有.有人建议允许:

<link rel="script" href=".../script.js"/>
Run Code Online (Sandbox Code Playgroud)

类似于样式表.这甚至被引用作为HTML 4 DTD中的示例,但浏览器实现从未发生过.惭愧,因为这会更清洁.


Jon*_*ust 14

您需要使用<script>标记来包含JavaScript源文件:

<script type="text/javascript" src="mysrc.js"></script>
Run Code Online (Sandbox Code Playgroud)

结束标记必须是完整的</script>,不要像使用某些标记那样缩写<script type="text/javascript" src="..."/>.

是的,当浏览器评估包含的源中的警报语句时,将显示警告语句.

有关<link>标记用法的信息,请参阅w3.org.


Hey*_*ude 6

现代浏览器支持preload关键字,该关键字用于预加载各种资源,包括脚本。从MDN

元素属性的preload值允许您在HTML中编写声明性的获取请求,指定页面加载后不久将需要的资源,因此,您希望在页面加载生命周期的早期开始在浏览器主渲染之前进行预加载。机器启动。这确保了它们更早可用,并且不太可能阻塞页面的第一个渲染,从而提高了性能。<link>rel<head>

一个简单的示例可能看起来像这样(请参见我们的JS和CSS示例源,也可以在线观看):

<head>
  <meta charset="utf-8">
  <title>JS and CSS preload example</title>

  <link rel="preload" href="style.css" as="style">
  <link rel="preload" href="main.js" as="script">

  <link rel="stylesheet" href="style.css">
</head>

<body>
  <h1>bouncing balls</h1>
  <canvas></canvas>

  <script src="main.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)


Cir*_*四事件 5

可能的理由为何不

  • link元素仅在通常允许“元数据内容”的地方才被允许head,而在中则不允许body。请参阅:可以使用此元素的上下文。是走在所有的嵌入式元素body具有独立的元素他们:imgiframe,等。

  • link元素必须为空,并且script可以为非空。另请:内容模型

因此,有一个单独的JavaScript元素是很自然的,并且由于我们必须有一个单独的元素,因此最好不要使用来复制功能link rel="script"

该理论还解释了为什么imgstyle具有单独的元素:

  • img 可以放置在主体中,因此即使必须为空,它也会获得一个单独的元素。

  • style可以是非空的,因此它得到一个单独的元素,即使直到HTML5都不能将其放置在中body(现在可以通过scoped,但是仍然不包括外部脚本)。


Syn*_*tic 2

JavaScript 代码通常使用 script 标签加载,如下所示:

<script type="text/javascript" src="test.js"></script>
Run Code Online (Sandbox Code Playgroud)