メインコンテンツへスキップ

JSX(React)でテキストのコピーを禁止する

··513 文字·2 分·
プログラミング React JSX
著者
Admin
目次

jsx コピー禁止
#

完全ではないかもしれない。

以下コード。

 <div onCopy={(e) => {
          alert('onCopy');
          e.preventDefault();
        }} onContextMenu={(e) => {
          alert('onContextMenu(Right Click)');
          e.preventDefault();
        }}>
          <p>Copy and Context Menu disabled.</p>
        </div>

div内のElement上でCtrl + C or 右クリック(ContextMenu)しようとするとアラートが表示される。
その後e.preventDefault()(🔗https://developer.mozilla.org/ja/docs/Web/API/Event/preventDefault)でコピーの処理や右クリックしたときにメニューがでる処理を呼ばないようにしているので結果的にコピーできなくなる。

以下動作スクショ。


直接Element単体のみをコピー禁止にもできるはず。

注意点
#

以下の図のようにコピー禁止されていないElementを巻き込んで選択した上でコピーすると普通にコピーされてしまう。

対策としては、(画面的な意味で)広めにコピー禁止の<div>で囲うぐらいか。

編集後記
#

もしかしたらもっと良い方法があるのかもしれない。
コピー全般で発火するイベントとかないのかな。

関連記事
#

🔗qiita: JavaScriptのpreventDefault()って難しくない?preventDefault()を使うための前提知識

Related

久しぶりに使ったことのないプログラミング言語(Julia)を学習して気がついたこと
·1623 文字·4 分
プログラミング 学習 Julia Plots.jl
ブログや学習メモを書くことのメリット
··788 文字·2 分
ブログ運用 学習 プログラミング 数学 オートクライン効果 アウトプット
wgpuでバッファに書き込みをした際にvalidation errorが出る原因と解決方法
··934 文字·2 分
CG プログラミング wgpu
Vulkanを直に使ったほうが色々おもしろい機能があるのでは? と思い始めている。