13

私は答えを見つけましたが、それはJQuery用でした。リンクは次のとおりです。

http://jquerybyexample.blogspot.com/2010/12/disable-cut-copy-and-paste-function-for.html

: Chrome、最新の firefox、safari、IE 8 および 9 で動作するプレーンな Javascript が必要です。

アップデート

これはインターネットサイトにとって悪い考えだという否定的なコメントがすべてあるため、私は「同意します」としか言えません. これは、切り取り、コピー、貼り付けをオーバーライドする必要がある「イントラネット」アプリケーション用であることに注意してください。切り取り、コピー、貼り付けのデフォルトのブラウザ動作をカスタマイズして、リッチ テキスト領域に埋め込まれたタグを処理する必要があるためです。

4

5 に答える 5

16

もちろん、このようなことをするのは適切ではありませんが、それは@Zubairsの質問ではなかったので、ここで反対票を投じるのは正しくないと思います。

ここで質問があります。jQuery がそれを実行できる場合、ネイティブ JavaScript ももちろん実行できます。

切り取り、コピー、貼り付けのイベントを防止する必要があります。

document.body.oncopy = function() { return false; }
document.body.oncut = function() { return false; }
document.body.onpaste = function() { return false; }

これにより、右クリック コンテキスト メニューが妨げられます。これは、他の 3 つのイベント ハンドラを使用する場合は必要ありませんが、通知するためだけです ;-)

document.body.oncontextmenu = function() { return false; }

重要: body をロードする必要があります (もちろん)、document.body は IE が必要とするためです (document.oncopy は chrome/firefox/safari でのみ動作します)

于 2012-11-30T14:41:24.470 に答える
2

編集: これを body タグに追加すると、Opera、Chrome、Seamonkey (Firefox と仮定します)、IE9 を含むすべてのテスト ブラウザーで動作するようです。

<body oncopy='return false' oncut='return false' onpaste='return false'>

一部の機能を一部の場所で許可し、他の場所では許可しない場合は、それらを他のタグに入れることができます

于 2012-11-30T14:36:20.007 に答える
1

[Ctrl]+[C]キープレスをキャッチできます:

addEventListener("keydown", function(e){
    evt = (e) ? e : window.event; // Some cross-browser compatibility.
    if(evt.ctrlKey && evt.which == 67){ // [x] == 88; [c] == 67; [v] == 86;
        console.log("Ctrl+C pressed!");
        evt.preventDefault(); // Cancel the copy-ing function for the client.
        // Manual Copy / Paste / Cut code here.
    }
});​

作業スニペット

于 2012-11-30T14:25:35.077 に答える