我可以在我的网站上使用<link>
标记加载JavaScript代码吗?
例如,我有一个javascript文件test.js
,其中包含简单代码alert('hello');
我可以使用以下方式显示弹出窗口:
<link href="test.js"></link>
答案 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 used。 body
中的所有嵌入元素都包含单独的元素:img
,iframe
等。
link
元素必须为空,script
可能为非空。请参阅:Content model
因此,为JavaScript提供单独的元素是很自然的,因为我们必须有一个单独的元素,所以最好不要使用link rel="script"
复制功能。
该理论还解释了为什么img
和style
具有单独的元素:
img
可以放在正文中,因此它会获得一个单独的元素,即使它必须为空。
style
可以是非空的,因此它会获得一个单独的元素,即使在HTML5中它无法放入body
(现在它可以通过scoped
,但仍然不包括外部脚本。)
答案 3 :(得分:4)
现代浏览器支持preload
关键字,该关键字用于预加载各种资源,包括脚本。来自MDN:
通过
preload
元素的<link>
属性的rel
值,您可以 在您的HTML<head>
中编写声明性提取请求,并指定 页面加载后不久将需要的资源 因此想在页面生命周期的早期开始预加载 加载,然后再启动浏览器的主要渲染机制。 确保更早提供它们,并且不太可能 阻止页面的第一个渲染,从而提高性能。一个简单的示例可能看起来像这样(请参见我们的JS and CSS example source和live):
<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混淆)。
我将在这里留下链接,让您自己阅读详细信息,因为它已在互联网上提供。