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> 的相同屬性名稱。


舉例如下
<!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>  

<!-- 《程式語言教學誌》的範例程式
     http://pydoing.blogspot.com/
     檔名:scripttest.html
     功能:示範 HTML 5 標記語言 
     作者:張凱慶
     時間:西元 2011 年 12 月 -->


此例中,我們利用 <script> 設計 run() 函數,此函數會抓取滑鼠座標,然後顯示在網頁之中
<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() ,因此滑鼠一旦移動,網頁就會顯示滑鼠座標
<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

沒有留言: