通常大家最為熟悉的是一下兩種方法:
- 在頁面中直接寫入<script type="text/javascript">js代碼</script>。
- 在頁面中引入外部文件<script src="xx.js"></script>。
下面再介紹幾種頁面引入js的代碼:
- 在js中引入外部js,通過document.wirite("scr"+"ipt src='xx.js'></scr"+"ipt">。此時:<script></script>被拆解為"<scr"+"ipt .....</scr"+"ipt">,如果不這樣拆解,瀏覽器可能會把父級js片段關閉掉,從而導致出錯。
- 在js中引用其他js片段,document.write("<scr"+"ipt>alert(xxx)</scr"+"ipt>");
- 通過DOM添加:var scr=document.createElement("script"); scr.src="xxx.js";
下面測試下,不同的方式引入js,加載的時間順序:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <script src="2.js" type="text/javascript"></script> 7 <script type="text/javascript"> 8 document.write("<scr"+"ipt>alert(4)</scr"+"ipt>");//通過第四種方式引入 9 document.write("<scr"+"ipt src='3.js'></scr"+"ipt>");//通過第三種方式引入 10 alert(1); 11 document.write("<scr"+"ipt src='3.js'></scr"+"ipt>"); 12 alert(5); 13 </script> 14 </head> 15 <body> 16 </body> 17 </html>
執行順序:2-4-1-5-3-3
第三種和第四種交換順序后:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <script src="2.js" type="text/javascript"></script> 7 <script type="text/javascript"> 8 document.write("<scr"+"ipt src='3.js'></scr"+"ipt>");//通過第三種方式引入 9 document.write("<scr"+"ipt>alert(4)</scr"+"ipt>");//通過第四種方式引入 10 alert(1); 11 document.write("<scr"+"ipt src='3.js'></scr"+"ipt>"); 12 alert(5); 13 </script> 14 </head> 15 <body> 16 </body> 17 </html>
執行順序:2-1-5-3-4-3
可以看出第三種方式:document.wirite("scr"+"ipt src='xx.js'></scr"+"ipt">引入js的代碼,執行會遲與直接寫入的js文本。
同時,第四種方式引入js的執行和直接寫入的文本是按順序執行。
總結下,常用的一下幾種方式引入js代碼:
- 在頁面中直接寫入<script type="text/javascript">js代碼</script>。
- 在頁面中引入外部文件<script src="xx.js"></script>。
- 在js中引入外部js,通過document.wirite("scr"+"ipt src='xx.js'></scr"+"ipt">。
- 在js中引用其他js片段,document.write("<scr"+"ipt>alert(xxx)</scr"+"ipt>")。
- 通過DOM添加:var scr=document.createElement("script"); scr.src="xxx.js";