HTML 5 快速導覽 - 文件資料元素 <script>

<script> 為 HTML 文件的文件資料元素 (element) ,用來撰寫或外連 JavaScript 程式。



<script> 除了全域屬性外,另有定義五個屬性 (attribute)
  • src
  • async
  • defer
  • type
  • charset


src 用來設定外連 JavaScript 程式的位置,如果要直接在 <script> 寫 JavaScript 程式,就不要設定 srcasyncdefer 都是布林屬性,兩者決定外連的 JavaScript 如何被執行, charset 則是外連程式的編碼,因此 src 沒有設定外連的話,此三者也不需要設定。


預設的 type 為 "text/javascript" ,只有當 <script> 外連或裡頭不是 JavaScript 程式的時候, 才需要額外設定 type


此外, <script> 的文件物件模型 (DOM) 介面為 HTMLScriptElement ,有六個額外的屬性
  • src
  • async
  • defer
  • type
  • charset
  • text


text 為 <script> 到 </script> 之間的文字內容,也就是 JavaScript 程式碼,其他對應到 <script> 的相同屬性名稱。


舉例如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<!DOCTYPE html> 
<html
  <head
     <title>HTML 5 DEMO</title>
     <style>
       header, nav, section, article, footer {
         display: block;
       }
       header, nav, section, article, footer {
         color: white;
       }
       header, footer {
         text-align: center;
         width: 100%;
       }
       header {
         background-color: red;
         font-size: 36px;
         font-weight: bold;
       }
       nav {
         position: fixed;
         top: 40px;
         right: 25px;
         background-color: blue;
         width: 100px;
       }
       section {
         width: 86%;
         height: 300px;
         background-color: gray;
         padding: 20px;
         margin: 20px;
       }
       footer {
         background-color: green;
         font-size: 10px;
       }
     </style>
     <script>
       function run(event) {
         var x = document.getElementById("x");
         var y = document.getElementById("y");
         x.innerHTML = event.clientX;
         y.innerHTML = event.clientY;
       }
     </script>
  </head
  <body onmousemove="run(event);"
    <header
       header 
    </header
    <nav
      <ul>
        <li>nav 1</li>
        <li>nav 2</li>
      </ul
    </nav>
    <section>
      <article>
        x: <span id="x"></span>, y: <span id="y"></span>
      </article>
    </section>     
    <footer
      <p>
        footer © 2011
      </p>      
    </footer
  </body
</html
 
<!-- 《程式語言教學誌》的範例程式
     檔名:scripttest.html
     功能:示範 HTML 5 標記語言
     作者:張凱慶
     時間:西元 2011 年 12 月 -->


此例中,我們利用 <script> 設計 run() 函數,此函數會抓取滑鼠座標,然後顯示在網頁之中
40
41
42
43
44
45
46
47
<script>
  function run(event) {
    var x = document.getElementById("x");
    var y = document.getElementById("y");
    x.innerHTML = event.clientX;
    y.innerHTML = event.clientY;
  }
</script>


然後在 <body> 的 onmouseover 屬性呼叫 run() ,因此滑鼠一旦移動,網頁就會顯示滑鼠座標
49
<body onmousemove="run(event);">


利用 Firefox 開啟如下



中英文術語對照
元素element
屬性attribute
文件物件模型DOM


您可以繼續參考
JavaScript 範例

根元素

文件資料元素


相關目錄
HTML 5 快速導覽
HTML, CSS 教材
首頁


參考資料
http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#the-script-element
http://www.w3.org/TR/2011/WD-html5-20110525/scripting-1.html#the-script-element

沒有留言: