DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> 14.6 JavaScript編輯事件
14.6 JavaScript編輯事件
編輯:JavaScript基礎知識     

在JavaScript中,常見的編輯事件有3種:

  • (1)復制事件oncopy;
  • (2)剪切事件oncut;
  • (3)粘貼事件onpaste;

下面我們一一給大家詳細講解這些JavaScript編輯事件。

一、復制事件

在JavaScript中,在網頁中復制內容時會觸發復制事件oncopy。我們可以通過oncopy事件來禁止用戶復制網頁內容。

此外,與oncopy配對的還有一個onbeforecopy,表示在復制內容之前觸發的事件。也就是在時間上,onbeforecopy比oncopy早。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <div> 學習網成立於2015年4月1日,是一個富有活力的技術學習網站。 學習網為廣大網絡工作者(網頁開發人員、站長等)提供各種精品教程以及最精華資料。</div>
    <script type="text/javascript">
        documen.body.oncopy=function(){
            alert("版權所有,禁止復制!");
            return false;  //返回false,表示屏蔽復制功能
        }
    </script>
</body>
</html>

在浏覽器預覽效果如下:

分析:

當我們選中該網頁內容,並且點擊“復制”時,就會彈出以下提示框:

其實上述方法不能真正做到完全屏蔽,因為我們可以到浏覽器中設置“禁用JavaScript”,這時使用JavaScript實現屏蔽復制就無效了。進一步擴展,使用這種屏蔽方式也極大影響了用戶體驗,大家在實際開發的時候如果不想你的網站成為鳥不拉屎的地方的話,還是少點用。

二、剪切事件

在JavaScript中,當網頁文本框等中選中的內容被剪切時會觸發剪切事件oncut。

此外,與oncut配對的還有一個onbeforecut,表示在復制內容之前觸發的事件。也就是在時間上,onbeforecut比oncut早。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <textarea id="txt" cols="20" rows="5"> 學習網成立於2015年4月1日,是一個富有活力的技術學習網站。</textarea>
    <script type="text/javascript">
        var e = document.getElementById("txt");
        e.oncut = function () {
            alert("禁止剪切文本框內容!");
            return false;
        }
    </script>
</body>
</html>

在浏覽器預覽效果如下:

分析:

當我們選中多行文本框textarea內容,並且點擊“剪切”時,就會彈出以下提示框:

跟oncopy事件類似,oncut事件也需要返回false才能禁止剪切。大家可以試試在上面的在線測試中把“return false;”這一句刪除會看到,雖然彈出了提示框,但是內容還是被剪切了!

三、粘貼事件

在JavaScript中,當我們往文本框等中粘貼內容時會觸發粘貼事件onpaste。

此外,與oncopy配對的還有一個onbeforepaste,表示在復制內容之前觸發的事件。也就是在時間上,onbeforepaste 比onpaste早。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <textarea id="txt" cols="20" rows="5"></textarea>
    <script type="text/javascript">
        var e = document.getElementById("txt");
        e.onbeforepaste = function () {
            window.clipboardData.setData("text","");  //清空剪貼板
        }
    </script>
</body>
</html>

在浏覽器預覽效果如下:

分析:

這個例子請在IE浏覽器下預覽,因為chrome等浏覽器不支持window.clipboardData.setData的用法。

在這個例子中,在向文本框粘貼文本時,利用onbeforepaste事件來清空window對象剪貼板,使其無法向文本框中粘貼數據。在這裡,如果使用onpaste就無法實現了,大家想一一下onpaste和onbeforepaste兩者先後問題就知道了。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved