かなぽんぶろぐ

かなぽんぶろぐ

IT・情報関連のことをできるだけわかりやすくぽつぽつと

新アドオンをProhibition Releaseリリースしました!
Firefox版のインストールは<こちら>から。
Chrome版は現在審査中ですが、公開されたら<こちら>からインストールできると思います。
ソースコードは<こちら>に公開しています。

このアドオンをインストールするとサイトによる右クリック禁止、テキスト選択の禁止、ドラッグ禁止等を解除できます。
サイトによっては不具合が出る可能性があるのでon/offできるチェックボックスつけています。
(Deeplで翻訳する際に、テキストボックスにペーストできない場合は「onpaste」をoffにする等。)

チェックボックスの変更はサイトをリロードすることで反映されます。
チェックボックスの下の方に「opacity」「visibility」「display」という項目も付けています。
これはonにすると上記が設定されていて非表示になっている部分を表示できます。
表示させた個所はピンク色の枠で囲うようにしています。
この3つをonにしてGoogleのホームページをみるとぶっ壊れた感じになります。楽しいですね!つまりこの3つのチェックボックスについては実用性ほぼゼロです。
また、Chrome、Firefox各全イベントに対応してるはずです。
どういうイベント使われてるのか調査される方には便利かもしれません。そんな人いるのかわかりませんが・・・。


過去にリリースしているQuickDrag WE、QuickDrag for Chromeと併用して使用可能です。
QuickDragが動作しないサイトは「ondragstart」、「ondragover」、「ondragend」、「ondrop」をオンにすれば動作するようになると思います。
そもそもこのアドオンを作った理由はQuickDrag WEが動作しないサイトが多くあり、どうにかして回避できないか試行錯誤した結果です。
Quickdragに組み込んでもよかったのですが、クレーム来たら嫌だったので別アドオン化しました。
Firefoxについてはバージョン88.0.1 (64 ビット)にて動作確認を行っており、それ以下のバージョンについての動作は保証はいたしません。


どういう仕組みで動いているのかというと、右クリックが禁止されている場合下記のようなコードが仕組まれています。

 

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

 

それを

 

document.oncontextmenu = function(){return true;};

 

で実行しなおします。そうすることでイベントの通知を強制的に通しています。
( document.oncontextmenu = null;にする方がいいんですかね?詳しい人教えてください。)

またjQueryでは下記のよう禁止されていますが、

 

$(function(){
  $("img").on('contextmenu',function(e){
    return false;
  });
});

それを

jQuery("*").off("contextmenu");

で実行しなおします。

禁止解除系アドオンはいろいろありますが、調べてみると stopImmediatePropagation 等でイベントを強制的に止めてやる方法がほとんどでした。
そのため、禁止解除系アドオンをインストールして、他アドオンが無効化される現象に出くわされたことがあるのではないでしょうか?
本アドオンはイベント強制停止を方法使用していないため、他アドオンに影響が出ない可能性が大きいので、是非とも試してみてください。

 

<その他注意事項>

・サイト読み込み完了直後に実行されるため、読み込み中にスクロールすると多少カクつく時があります。

・ブログ投稿等の際は仕様上スクリプト文字列が挿入されてしまうため、アドオン自体をoffにしてください。



ではでは。