6

私はオンラインタイピングソフトウェアに取り組んでいます。タイピング ソフトウェアでは、すべてうまくいっていますが、不誠実なユーザーがテキスト領域にテキストを入力してコピーし、ページをリロードして (したがってタイマーをリセットして) すぐに貼り付ける可能性があるという問題があります。evt.preventDefault();だから私は、javascriptがキーと一緒にctrl / cmdボタンの押下を検出したときのようなものを使用することに沿って考えていましたC。しかし、その後、ユーザーはいつでもメニュー バーに移動して を押すことができることに気付きましたEdit -> Copy。それで、両方のコピー方法を無効にするクロスブラウザの方法はありますか?

4

4 に答える 4

3

次の jQuery コードの使用を試すことができます。

$('input[type=text],textarea').bind('copy paste cut drag drop', function (e) {
   e.preventDefault();
});
于 2012-04-09T08:56:38.223 に答える
2

あなたはおそらく次のようなことができます:

var txtArea = document.getElementById("YourTextAreaId");
txtArea.oncopy = function() { return false; } 
txtArea.onpaste = function() { return false; } 
txtArea.oncut = function() { return false; } 

ただし、その場合でも、質問で示唆されているように、ユーザーは他の手段でコンテンツをコピーできます。

于 2012-04-09T09:06:16.367 に答える
1

一部のイベントはブロックできますが、そのようなユーザーの行動を防ぐことはできません。ユーザーは、ブラウザ コンソールを介して DOM ノードからいつでもテキストをコピーできます。

于 2012-04-09T08:58:54.707 に答える
0

イベント ハンドラーをバインドし、次のようなクリップボード機能を防止します。

$('textarea').on('copy paste cut drag drop', function (e) {
   e.preventDefault();
});
于 2012-04-09T23:27:41.680 に答える