📑 Table of Contents

動態HTMLDynamic HTML,简称DHTMLDHML)指的是网页内容随着用户或计算机程序提供的参数而变化的HTML,通过结合HTML、用戶端脚本语言(Client Side Script,如JavaScript)、串接樣式表(CSS)和文件物件模型(DOM)来创建動態網頁內容。

动态HTML

应用

编辑

动态HTML技术根据运行地点,分為客户端脚本(也称浏览器脚本)和服务器脚本。

  1. 客户端脚本
    客户端脚本包括JavaScript技术。是指在某个页面中,通过鼠标点击或键盘操作,与网页产生交互动作;或者在特定时间激发某个事件。客户端脚本在用户的电脑系统里运行。常用于多媒体展示和远程脚本调用。
  2. 服务器脚本
    服务器脚本包括ASP, ColdFusion, Perl, PHP, Ruby, WebDNA等技术,一般通过Common Gateway Interface (CGI)来产生动态页面。通过在HTML表单中填写数据,更改URL地址中的参数,更改浏览器的类型等,每次都可能产生不同的页面,称之为动态页面。

最常见的例子包括:

  • 产生交互式表单
  • 生成类似WebCT的e-learning交互式在线基础培训
  • 创建基于浏览器的视频游戏

結構

编辑

一個典型的使用 DHTML 如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>DHTML example</title>
    <script type="text/javascript"> 
      function init() {
      myObj = document.getElementById("navigation");
      // .... more code
      }
      window.onload=init;
    </script>
  </head>
  <body>
    <div id="navigation"></div>
    <pre>
      Often the code is stored in an external file; this is done by linking the file that contains the JavaScript. 
      This is helpful when several pages use the same script:
    </pre>
    <script type="text/javascript" src="myjavascript.js"></script>
  </body>
</html>

範例

编辑

範例如下:[1]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  <head>
    <title>Test</title>
    <style type="text/css">
      h2 {background-color: lightblue; width: 100%}
      a {font-size: larger; background-color: goldenrod} 
      a:hover {background-color: gold}
      #example1 {display: none; margin: 3%; padding: 4%; background-color: limegreen}
    </style>
    <script type="text/javascript">
      function changeDisplayState (id) {
        d=document.getElementById("showhide");
        e=document.getElementById(id);
        if (e.style.display == 'none' || e.style.display == "") {
          e.style.display = 'block';
          d.innerHTML = 'Hide example..............';
        } else {
          e.style.display = 'none';
          d.innerHTML = 'Show example';
        }
      }
    </script>
  </head>
  <body>
    <h2>How to use a DOM function</h2>
    <div><a id="showhide" href="javascript:changeDisplayState('example1')">Show example</a></div>
    <div id="example1">
      This is the example.
      (Additional information, which is only displayed on request)...
    </div>
    <div>The general text continues...</div>
  </body>
</html>

參考文獻

编辑
  1. ^ 存档副本. [2011-02-10]. (原始内容存档于2020-08-09). 

📚 Artikel Terkait di Wikipedia

網頁程式設計

在Web服务器端,有 ASP(Active Server Pages) ASP.NET CGI(Common Gateway Interface,公用网关接口)/FastCGI Shell script(如ksh,bash等) Perl(常用) C++ 其他任何程序设计语言 ColdFusion

跨網站指令碼

通常有一些方式可以測試網站是否有正確處理特殊字元: ><script>alert(document.cookie)</script> ='><script>alert(document.cookie)</script> "><script>alert(document.cookie)</script> <script>alert(document

XMLHttpRequest

<script type=text/javascript src=ajax_submit.js></script> </head> <body> <div id=ajax_title></div> <button onclick="ajax_submit( 'ajax_title', '/cgi-bin/ajax'

V8 (JavaScript引擎)

client-side C++ classes to JavaScript. v8cgi (页面存档备份,存于互联网档案馆) is a v8-based framework for serving web application written in JavaScript. node

服务器端脚本

Parser编程语言(英语:Parser (programming language)) (*.p) Perl via the CGI.pm(英语:CGI.pm) module (*.cgi, *.ipl, *.pl) PHP (*.php, *.php3, *.php4, *.phtml) Python (*

MapServer

MapServer 是一个开放源代码的开发环境,用于建立空间互联网应用。它可以作为 CGI 程序或通过 MapScript 运行。MapScript 支持数种编程语言(通过SWIG)。MapServer 由明尼苏达大学开发。它的开发最初由 NASA 支持,以使其卫星影像开放给公众。

洗版

然而,由於留言版(無論CGI/PHP)消耗系統資源不大,相關檔案也比較小,此方法的炸版較難對留言版造成嚴重傷害。 此方法對論壇是不管用的,因為絕大部份論壇也禁止會員直接使用HTML。 部份留言版沒有禁止使用某些JavaScript語法,而事實上配合JavaScript

Ruby on Rails

对于开发和测试来说,一个很轻量的WEBrick網頁服务器已经被包含在了Ruby中,常被用来作为应用服务器。而对于生产应用,常推荐使用带FastCGI的Apache或者Lighttpd,但任何支持CGI或者FastCGI的網頁伺服器都可以使用。在Apache上,mod_ruby也可以考虑用来提高性能。