Electron

【Electron】外部サイトのスクリプト呼び出しをブロックする方法

更新日:2026/03/27

Electronで外部のWebページを読み込んでいると、スクリプトを制限したいことがあります。
特に広告クリックすると広告主に迷惑をかけるので気を遣いますね。

そこで今回は、Electronで、外部サイトが読み込んでいるスクリプトをブロックする方法をお伝えします。

 

スクリプト呼び出しを制限する方法

Electronは、webRequest.onBeforeRequest()を使用するとことでスクリプト呼び出しをトラップでき、トラップ内でスクリプト読み込みをキャンセルすることが可能です。

webRequest.onBeforeRequestの構文

セッション.webRequest.onBeforeRequest( filter , (details,callback)=>{} )
  1. filter:トラップする対象の情報
    メンバー{
    urls: URLパターンの配列。['<all_urls>']で全て
    excludeUrls: 対象から除外するURLパターンの配列
    types: リクエストタイプの配列
    }
  2. details:トラップしたURLの情報
    メンバー{
    id:
    url:
    method:
    webContentsId:
    webContents:
    frame: WebFrameMainnull
    resourceType: リソースタイプ
    referrer:
    timestamp:
    uploadData
    }
  3. callback:トラップしたURLのキャンセルまたはリダイレクトを指示するための関数
    { cancel: true }でキャンセル
    { redirectURL: ... }でリダイレクト

リクエストタイプ:

mainFrame、subFrame、stylesheet、script、image、font、object、xhr、ping、cspReport、media、webSocket

リソースタイプ:

mainFrame、subFrame、stylesheet、script、image、font、object、xhr、ping、cspReport、media、webSocket、other

 

コード例

次のコードは、特定のドメインへのアクセスをすべて制限しています。

import { app, BrowserWindow, session } from 'electron'

function createWindow(): void {
  const win = new BrowserWindow({
    width: 900,
    height: 670
  })

  const filter = {
    urls: [
      '*://*.doubleclick.net/*',
      '*://*.googlesyndication.com/*',
      '*://*.googleadservices.com/*',
      '*://*.google-analytics.com/*',
      '*://pagead2.googlesyndication.com/*'
    ]
  }
  session.defaultSession.webRequest.onBeforeRequest(filter, (details, callback) => {
    console.log('Blocked:', details.url)
    callback({ cancel: true })
  })

  win.loadURL('https://....')
  win.webContents.openDevTools({ mode: 'undocked' })
}

urlsの文字列は、"*"を使用することでパターン一致を利用できます。

上記のコードはドメインのみを指定しているため、スクリプト以外のリクエストもフィルタ対象になります。
スクリプトのみをフィルタしたいときは、types:[ "script" ] を指定しましょう。

 

開発ツールで確認

上記のコードは開発ツールを表示しているので、コンソールを開いてフィルタ状況を確認できます。
リクエストをブロックすると、次のように net::ERR_BLOCKED_BY_CLIENT と表示されます。

開発ツールのコンソール

更新日:2026/03/27

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://note.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。