JavaScript <script>標籤
目錄
1. HTML中使用JavaScript。
要在html中使用JavaScript主要是使用<script>標籤。
使用<script>標籤的方式有2種:
1.1 直接將JavaScript程式碼放入<script>標籤中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>script標籤</title>
<script>
function hi() {}
</script>
</head>
<body></body>
</html>
1.2 通過src引用外部JavaScript檔案。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>script標籤</title>
<script src="xxx.js"></script>
</head>
<body></body>
</html>
2. <script>標籤屬性。
<script>標籤有8個屬性,分別是:
2.1 src
用於引用外部檔案。
2.2 type
表示程式碼塊中的語言型別,這個值始終是text/javascript。
2.3 crossorigin
配置相關請求的CORS(跨源資源共享)設定。預設不使用CORS。crossorigin=
"anonymous"配置檔案請求不必設定憑據標誌。crossorigin="use-credentials"設定憑據
標誌,意味著出站請求會包含憑據。
2.4 charset
使用 src 屬性指定的程式碼字符集。這個屬性很少使用,因為大多數瀏覽器不在乎它的值。
2.5 async
表示應該立即開始下載指令碼,但不能阻止其他頁面動作,比如下載資源或等待其他指令碼載入。只對外部指令碼檔案有效。
2.6 defer
表示指令碼可以延遲到文件完全被解析和顯示之後再執行。只對外部指令碼檔案有效。在 IE7 及更早的版本中,對行內指令碼也可以指定這個屬性。
2.7 integrity
允許比對接收到的資源和指定的加密簽名以驗證子資源完整性(SRI,Subresource Integrity)。如果接收到的資源的簽名與這個屬性指定的簽名不匹配,則頁面會報錯,指令碼不會執行。這個屬性可以用於確保內容分發網路(CDN,Content Delivery Network)不會提供惡意內容。
2.8 language
廢棄。最初用於表示程式碼塊中的指令碼語言(如"JavaScript"、“JavaScript 1.2”
或"VBScript")。大多數瀏覽器都會忽略這個屬性,不應該再使用它。
3. 標籤位置。
可以把<script>放在<head>裡,如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="../xx.css">
<script src="../js"></script>
</head>
<body>
<!-- 內容 -->
</body>
</html>
這樣的做法的目的是為了把外部的CSS和JavaScript檔案都集中在一起,但是這樣會造成渲染頁面的時候,頁面會在下載JavaScript解析後,才顯示<body>裡的內容。在這個期間,頁面是完全空白的。
為了解決這個問題,提高使用者體驗,現在通常把JavaScript的引用放在<body>的內容後面,如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="../xx.css">
</head>
<body>
<div>body內容</div>
<script src="../js"></script>
</body>
</html>
這樣就會先顯示body中的內容,再去下載和解析JavaScript。
4. 動態載入JavaScript。
可以通過DOM的API,向DOM中新增<script>,例如:
var script = document.createElement('script');
script.src = '../xx.js';
// script.async = false; 可以明確將其設定為同步載入
document.head.appendChild(script);
這種方式獲取的資源對瀏覽器預載入器是不可見的。這會嚴重影響它們在資源獲取佇列中的優先順序。根據應用程式的工作方式以及怎麼使用,這種方式可能會嚴重影響效能。要想讓預載入器知道這些動態請求檔案的存在,可以在文件頭部顯式宣告它們:
<link rel="preload" href="gibberish.js">
相關文章
- script標籤
- JS 之 script標籤JS
- 熟悉的< script >標籤
- 淺談script標籤
- JavaScript動態建立script標籤並執行js程式碼JavaScriptJS
- Script標籤的async和defer
- HTML中的script標籤研究HTML
- script標籤中的async和defer
- script標籤到底該放在哪裡
- script標籤的crossorigin屬性ROS
- javascript快速入門6--Script標籤與訪問HTML頁面JavaScriptHTML
- 說一說 HTML 中的 script 標籤HTML
- js——<script>標籤的載入順序JS
- jQuery內部對<script>標籤的處理jQuery
- JavaScript 標籤語句JavaScript
- script標籤的defer和async屬性詳解
- 通過JavaScript獲取標籤,修改標籤內容JavaScript
- JavaScript 模板字面量標籤JavaScript
- 類script標籤,非同步載入,順序執行非同步
- 前端效能優化---將script標籤放在body之後前端優化
- JavaScript各類標籤的使用JavaScript
- JavaScript 動態建立style標籤JavaScript
- JavaScript獲取元素標籤名JavaScript
- 我所知道的關於 script 標籤的一切
- 頁面動態加入<script>標籤並執行程式碼行程
- JavaScript獲取head標籤物件JavaScript物件
- 由script標籤引發了我對setTimeout非同步的思考非同步
- javascript實現文字框標籤驗證JavaScript
- javascript刪除字串中的html標籤JavaScript字串HTML
- javascript轉義或者還原html標籤JavaScriptHTML
- javascript球形標籤雲程式碼例項JavaScript
- DEMO6:座標新增文字標籤的JavaScript外掛JavaScript
- properties標籤和typeAliases標籤
- JavaScript 獲取指定標籤一級子元素JavaScript
- JavaScript物件導向修改標籤頁詳解JavaScript物件
- JavaScript html標籤轉義為實體字元JavaScriptHTML字元
- JavaScript 3D球形標籤雲程式碼JavaScript3D
- JavaScript如何獲取元素的標籤型別JavaScript型別