国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

DOM基礎教程之事件類型

2019-11-20 13:21:14
字體:
來源:轉載
供稿:網友

對于用戶事件類型而言,最常用的是鼠標、鍵盤、瀏覽器。

1.鼠標事件:

鼠標的事件都頻繁使用,下面例子就測試各種鼠標事件

復制代碼 代碼如下:

<script language="javascript">
            function handle(oEvent) {
                var disp = document.getElementById("display");
                if (window.event) oEvent = window.event; //處理兼容性,獲得對象
                disp.innerHTML += "鼠標事件名稱:" + oEvent.type + "<br>";
            }
            window.onload = function() {
                var oP = document.getElementById("box");
                oP.onmousedown = handle;
                oP.onmouseover = handle;
                oP.onmouseup = handle;
                oP.onmouseout = handle;
                oP.onclick = handle;
                oP.ondblclick = handle;
            }
        </script>
        <div>
            <div id="box" style="width:100px;height:100px;background:#ddd;">
                box內容
            </div>
            <p id="display"></p>
        </div>

鼠標的鍵值button測試(附對照表)

復制代碼 代碼如下:

<script language="javascript">
            function TestClick(oEvent) {
                var oDiv = document.getElementById("display");
                if (window.event)
                    oEvent = window.event;
                oDiv.innerHTML += oEvent.button; //輸出button的值
            }
            document.onmousedown = TestClick;
            window.onload = TestClick; //測試未按下任何鍵
        </script>
        <div>
            <p id="display"></p>
        </div>

2.鍵盤事件

鍵盤事件種類不多,僅三種事件。

keydown(按下某鍵,一直按住會持續觸發)

keypress(按下某鍵并產生字符時觸發,即忽略Shift、Alt,ctrl等功能鍵)

keyup(釋放某個鍵時觸發)

鍵盤監聽示例:

復制代碼 代碼如下:

<script language="javascript">
            function handle(oEvent) {
                if (window.event) oEvent = window.event; //處理兼容性,獲得事件對象
                var oDiv = document.getElementById("display");
                oDiv.innerHTML += oEvent.type + " "; //輸出事件名稱
            }
            window.onload = function() {
                var oTextArea = document.getElementById("textin");
                oTextArea.onkeydown = handle; //監聽所有鍵盤事件
                oTextArea.onkeyup = handle;
                oTextArea.onkeypress = handle;
            }
        </script>
        <div>
            <textarea rows="4" cols="50" id="textin">
            </textarea>
            <p id="display"></p>
        </div>

對于鍵盤而言,最重要的不是事件的名稱,而是所按的是什么鍵。由于ie沒有charCode屬性,而keyCode只有在keydown、keyup事件發生的時才與標準dom的keycode相同,

在keypress事件中等同于keycode,因此采用以下方法。

復制代碼 代碼如下:
oEvent.charCode = (oEvent.type == "keypress")?oEvent.keycode:();

之所以不采用keyCode是因為它表示鍵盤按鍵,而不是輸出的字符,因此,輸出“a”和“A”,keycode是等值的,charcode則以字符區分。

另外在keypress中,標準dom的keycode值始終為0;

例子:鍵盤事件的相關屬性:

復制代碼 代碼如下:

<script language="javascript">
            function handle(oEvent) {
                var oDiv = document.getElementById("display");
                if (window.event) oEvent = window.event; //處理兼容性,獲得事件對象
                //設置ie charcode的值
                oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0;
                oDiv.innerHTML += oEvent.type + ":charCode" + oEvent.charCode + "keyCode" + oEvent.keyCode + "<br>"; //輸出測試
            }
            window.onload = function() {
                var oTextArea = document.getElementById("textin");
                oTextArea.onkeydown = handle; //監聽所有鍵盤事件
                oTextArea.onkeypress = handle;
            }
        </script>
        <div>
            <textarea rows="4" cols="50" id="textin">
            </textarea>
            <p id="display"></p>
        </div>

3.htm事件

對于瀏覽器而言,各種html有著自己的事件,有一些也是用戶常常接觸到的,比如load,error,select等,常用的html事件如下:

load事件是常用的事件之一,因為在頁面載入完成之前,dom的框架還沒有搭建完成,因此任何相關操作都不能發生。

給window對象分配load,unload事件等同于<body>標記的onload和onunload方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安徽省| 邯郸市| 铁岭市| 利津县| 昌黎县| 虞城县| 阿克| 阆中市| 安庆市| 新乡市| 普宁市| 蓬安县| 怀远县| 融水| 灵石县| 成都市| 夹江县| 姜堰市| 木里| 汶上县| 塔城市| 万源市| 区。| 高密市| 荥阳市| 尼木县| 东乌珠穆沁旗| 留坝县| 营山县| 昭通市| 庄浪县| 客服| 嘉黎县| 贵港市| 嘉祥县| 河间市| 芜湖市| 温州市| 诸暨市| 和林格尔县| 印江|