エラー:キャッチされていないTypeError:storage.set(オブジェクトアイテム、オプションの関数コールバック)の呼び出しでエラーが発生しましたChrome拡張機能

user14567126

私は初めてChrome拡張機能を構築する方法を練習しています(私はこれで非常に新しいです)。拡張機能の目的は、ユーザーがFacebookやInstagramなどの特定のWebサイトにアクセスできないようにすることです。これまでのところ、タブにアクセスしてWebサイトをブロックしようとすると、タブを閉じるコードを使用しています。

別のHTMLファイルには、ユーザーが選択できる2つのオプションがあります-FacebookまたはInstagramをブロックする(2つのラジオボタンとして)。

9行目Chromeに入れようとすると、次のエラーが発生します。

「UncaughtTypeError:storage.set(オブジェクトアイテム、オプションの関数コールバック)の呼び出しエラー:一致する署名がありません。」

このエラーに関する他のサイトの説明を読みましたが、コーディングに慣れていないため、正直に理解できません。どんな助けでも前進する方法で本当にありがたいです!


コード:

document.addEventListener('DOMContentLoaded', function() {
selectCurrentValues();
let saveButton = document.getElementById('save');
if(saveButton) {
    saveButton.addEventListener('click', function() {

    let closingMethodRadios = document.getElementsByName('blockingMethod');
    if(closingMethodRadios[0].checked){
        chrome.storage.sync.set({'blockingMethod': "close_tab"},
        chrome.webRequest.onBeforeRequest.addListener(
            function(details) { return { cancel: true }},
            { urls: ["*://*.facebook.com/*"]},
            ["blocking"]
        ),

        function() {
            console.log('Closing tab set.');
        });
    }
    else if(closingMethodRadios[1].checked){
        chrome.storage.sync.set({'blockingMethod': "close_tab"}, 
        chrome.webRequest.onBeforeRequest.addListener(
            function(details) { return { cancel: true }},
            { urls: ["*://*.instagram.com/*"]},
            ["blocking"]
        ),  
        
        function() {
            console.log('Closing tab set.');
            });
        }
    });
}});

function selectCurrentValues(){
chrome.storage.sync.get('blockingMethod', function (data){
    switch(data.blockingMethod){
        case "close_tab":
            document.getElementById("close_tab").checked = true;
            break;
        case "clear_tab":
            document.getElementById("clear_tab").checked = true;
            break;
            }
        });
    }
wOxxOm

エラーは、間違ったパラメーターが指定されていることを意味します。

ドキュメントには、 2つのパラメータを指定できると記載されています。1つはobjectオプションで、もう1つはオプションですfunctionただし、コードは3つのパラメーターを渡します。2つ目はchrome.webRequest.onBeforeRequest.addListenerを呼び出した結果でありドキュメントに示されているように何も返さないため、コードobject, undefined, functionobject, function。の代わりに渡されます

解決

chrome.storage.sync.setの前または後にchrome.webRequest.onBeforeRequest.addListenerを移動します。

chrome.storage.sync.set({'blockingMethod': 'close_tab'},
  () => console.log('Closing tab set.'));

chrome.webRequest.onBeforeRequest.addListener(
  () => ({cancel: true}),
  {
    urls: ['*://*.facebook.com/*'],
    types: ['main_frame'],
  },
  ['blocking']);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

TOP 一覧

  1. 1

    Python / SciPyのピーク検出アルゴリズム

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    androidsoongビルドシステムによるネイティブコードカバレッジ

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    Reactでclsxを使用する方法

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    二次導関数を数値計算するときの大きな誤差

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  12. 12

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  13. 13

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  14. 14

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  15. 15

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  16. 16

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  20. 20

    画像変更コードを実行してもボタンの画像が変更されない

  21. 21

    好き/愛の関係のためのデータベース設計

ホットタグ

アーカイブ