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

时间:2010-04-13 17:14:09

标签: html css javascript

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

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

我可以使用以下方式显示弹出窗口:

<link href="test.js"></link>

8 个答案:

答案 0 :(得分:37)

没有。有人建议允许:

<link rel="script" href=".../script.js"/>

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

答案 1 :(得分:13)

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

<script type="text/javascript" src="mysrc.js"></script>

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

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

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

答案 2 :(得分:4)

可能的理由

  • link元素仅允许在&#34;元数据内容&#34;是允许的,通常是head,而不是body。见:Contexts in which this element can be usedbody中的所有嵌入元素都包含单独的元素:imgiframe等。

  • link元素必须为空,script可能为非空。请参阅:Content model

因此,为Ja​​vaScript提供单独的元素是很自然的,因为我们必须有一个单独的元素,所以最好不要使用link rel="script"复制功能。

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

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

  • style可以是非空的,因此它会获得一个单独的元素,即使在HTML5中它无法放入body(现在它可以通过scoped ,但仍然不包括外部脚本。)

答案 3 :(得分:4)

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

  

通过preload元素的<link>属性的rel值,您可以   在您的HTML <head>中编写声明性提取请求,并指定   页面加载后不久将需要的资源   因此想在页面生命周期的早期开始预加载   加载,然后再启动浏览器的主要渲染机制。   确保更早提供它们,并且不太可能   阻止页面的第一个渲染,从而提高性能。

     

一个简单的示例可能看起来像这样(请参见我们的JS and CSS example sourcelive):

<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>

答案 4 :(得分:1)

JavaScript代码通常使用脚本标记加载,如下所示:

<script type="text/javascript" src="test.js"></script>

答案 5 :(得分:1)

没有。 Link标记适用于CSS文件或relational链接(如next)。

这不是将javascript加载到页面中的方法。您需要使用<script>标记:

<script language="javascript" src="file.js" />

答案 6 :(得分:1)

另一个选项是,您可以通过创建SCRIPT标记,将其“src”属性设置为脚本的URI,然后将其作为子文件插入,将脚本文件动态插入到当前文档中。页面的HEAD节点。

执行这些操作将使浏览器获取脚本文件,将其加载到文档中并执行它。

答案 7 :(得分:1)

直接回答你的问题,没有。不是那种方法。然而,当我找到引导我这个问题的类似问题时,我被引导到了这个问题。看到已经提供的答案大部分是正确的,我去检查http://w3schools.com/上的语法。看来HTML5中的脚本元素有一个新属性。

这个新属性允许javascript文件被延迟或加载并异步执行(不要与AJAX混淆)。

我将在这里留下链接,让您自己阅读详细信息,因为它已在互联网上提供。

http://www.w3schools.com/tags/att_script_async.asp