HTML 是网站的结构主体,在HTML中嵌入JavaScipt可以丰富HTML文档的内容,主要是增加用户与网站的交互。
<script>元素
将JavaScript 插入HTML的主要方法是使用<script>元素。
<script>元素 主要主要有以下几个常用的属性。
| 属性 | 是否可选 | 功能 |
|---|---|---|
| async | 可选 | 表示应该立即开始下载脚本,但不能阻止其他页面动作,比如下载资源或等待其他脚本加载。只对外部脚本有效。 |
| crossorigin | 可选 | 配置相关请求的CORS(跨源资源共享)设置。默认不使用CORS。crossorigin=“anonymous”配置文件请求不必设置设置凭据标志。crossorigin=“use-credentials”设置凭据标志,意味着出站请求会包含凭据。 |
| defer | 可选 | 表示脚本可以延迟到文档完全被解析和显示之后再执行。只针对外部文件有效 |
| integrity | 可选 | 允许比对接收到的资源和制定的加密签名以验证子资源完整性。如果接收到的资源的签名与这个属性的签名不匹配,则页面会报错,脚本不会执行。这个属性可以用于确保分发网络(CDN)不会提供恶意内容。 |
| src | 可选 | 表示包含要执行的代码的外部文件 |
| type | 可选 | 代替language,表示代码库中脚本语言的内容类型(也称MIME类型)。如果这个值是module,则代表代码会被当成ES6模块,而且只有这时候代码中才能出现import 和export关键字。 |
需要注意的是,使用了src属性的<script>元素不应该再在<script>和</script>标签中再包含其他的JavaScript代码。如果两者都提供的话,浏览器只会下载并执行脚本文件,从而忽略行内代码。
<script>元素的位置
建议放在body 元素中的底部。
<!DOCTYPE html>
<html>
<head>
<title> Example HTML </title>
</head>
<body>
<!--------html 元素,页面内容--->
<script src="example.js"></script>
</body>
</html>
JavaScipt代码编写形式
(1)行内代码
直接在<script>和</script>标签中编写代码。
(2)外部代码
通过在独立文件中编写代码,再通过<script>元素的src 属性引入该文件。
JavaScipt代码的执行策略。
(1)推迟执行脚本
通过设置defer属性,可以使脚本在整个页面解析完毕后再执行。脚本不能修改页面结构。
(2)异步执行脚本
通过设置async 属性,达到与defer 属性一致的效果,但是异步执行与defer的不同之处在于,async 不保证脚本按照他们出现的次序执行。脚本不能修改页面结构。
动态加载脚本
在<script>元素中通过DOM API 动态的加载script 文件。
<script>
let script = document.createElement('script');
script.src = "gibberish.js";
document.head.appendChild(script);
</script>