LoginSignup
1
2

More than 5 years have passed since last update.

テキストのコピー時に何かするjQueryプラグイン作った

Posted at

これは何ですか?

コピペをできなくするプラグイン ではありません。←重要
そんなの無理だ。諦めろ。
コピーしようとするテキストが個人情報等を含んでいる等で、扱いに注意を促すためのものです。
なんだったらカジュアルなコピーをできなくすることもできるプラグインです。
巷によくある右クリックを禁止する乱暴なやつとは異なり、特定のセレクタの要素をコピーしたときに発動します。
そのため、コピー許可要素に対しては余計なことをしません。

使い方

sample.js
    $(document).copyGuard({
        guardSelector: '.copyGuard',    //コピー禁止領域のセレクタ―
        isCopyDeny: function(){         //コピー禁止領域をコピーしようとした際の関数。
            alert("個人情報を含んでいますよ")
            return true;                //trueを返すとコピー不許可とみなし、クリップボードの中身をクリアする
        },
    });

sample.html
    <div>
        ここはコピー許可
        <div style="border:1px solid;" class="copyGuard">
            ここはコピー禁止
            <div id="aaa">
                子要素でもコピー禁止
            </div>
        </div>
    </div>

「ここはコピー禁止」「子要素でもコピー禁止」を含んだ要素をコピーしようとするとalertを表示します。
isCopyDenyでtrueを返せば「コピー不許可」とみなし、クリップボードの中身をクリアします。
逆に言うと、falseを返せばコピー許可なので、動作を自由にカスタマイズできます。
(パスワードを入力したときだけコピー可とか。そのパスワードもjs内に書いてあるんだろうから意味ないけど)

繰り返しますが

jsを無効にしているといくらでもコピーできます。あくまで注意喚起を行うことが目的のプラグインです。

動作

window.getSelection()

が動くブラウザ。古いIEでは動きません。
対応できればします。行けたら行く的な。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2