0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

内容

特定のサイトを強制的に見られなくするchromeの拡張機能を作りました。
「〇〇のサイトをどうしても見てしまう!」という人に役立つといいなと思います。
具体的な内容は次の2つでとてもシンプルです。

  1. ページが読み込まれる
  2. htmlタグを削除する

この2つの機能をJavaScriptを書いて実現しました。
chromeに自作の拡張機能を追加する方法は以下の記事をご覧ください。

1. JSを書く

index.js
window.onload = function () {
  const intervalId = setInterval(() => {
    const element = document.getElementsByTagName('html')[0];
    if (element) {
      element.remove();
      clearInterval(intervalId); // 削除したら止める
    }
  }, 50);
};

内容はシンプルで、ページがすべて読み込まれたらelementにhtmlタグを代入します。
そしてhtmlタグを取得できていたらhtmlタグをelement.remove()で削除します。

仕様上、<html></html>は1組しかありません。

setInterval()を使っているのは、サイトによってはhtmlタグが消されて画面が真っ白になった後でも、音声が流れ続けることを防ぐためです。正直、setInterval()が最適解ではないと思っていて、いろいろ試す中でこれが上手くいったから使っている状況です。今後、より洗練されたコードを考えていこうと思います。

2. マニュフェストを書く

manifest.json
{
    "manifest_version": 3,
    "name": "〇〇を見ない",
    "version": "1.0.0",
    "description": "特定のサイトのhtmlタグを削除します。",
    "content_scripts": [
        {
            "matches": ["https://sample.com/*"],
            "js" : ["index.js"],
            "all_frames" : true
        }
    ]
}

content_scripts.matchesの値をhtmlを削除したいサイトのURLに置き換えてください。

3. 拡張機能を追加する

最後に、作った拡張機能をchromeに追加すればOKです。これでページを開いても真っ白になるので、ネットの使い過ぎを少しは減らせるかと思います。

最後に

今回拡張機能を作ってみて、結構簡単に作れるなと感じました。JSのコードを書くときは調べながらなので時間がかかりましたが、全体を通して必要な工程はそれほど多くありません。普段よく使うサイトの見た目を変えたいときに自分で拡張機能を作ってもいいなと思いました。

↓拡張機能を自分で作る詳しい方法が書かれています。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?