2016-05-27 7 views
1

ウェブページのアクティブな関数呼び出しを印刷するためのjavascriptコードを書いています。コンソールにコードを貼り付けると、コンソールにアクティブな機能が表示され、問題は拡張機能にあります。私はGoogle Chromeの拡張子にjavascriptコードを変換し、それは動作していません。私は拡張機能の作成には新しいです。アクティブな機能が、クロムエクステンションの形式で変換されたときにコンソールに印刷されない

プラグインコード:

manifest.jsonを

{ 
    "manifest_version": 2, 
    "name": "example", 
    "version": "0.1", 
    "description": "My Chrome Extension", 
    "icons": { 
    }, 

    "background": { 
    "scripts": [ 
     "js/background.js" 
    ] 
    }, 

    "browser_action": { 
    "default_title": "My test Environment" 
    }, 

    "permissions": [ 
    "background", 
    "storage", 
    "tabs", 
    "http://*/*", 
    "https://*/*" 
    ] 
} 

JS/background.js

function tracecalls(par) { 
    for (var name in window) { 
     if (typeof window[name] === 'function') { 

      window[name] = (function (fname, f) { 
       return function() { 
        par(fname); 

        return f.apply(this, arguments); 
       } 
      }(name, window[name])); 
     } 
    } 
} 
tracecalls(function (fname) { 
    console.log("Function Name : " + fname); 
}); 

答えて

0

あなたのバックグラウンドスクリプトが別のページに実行されます。コードが何かを出力したとしてもおそらくlooking in the wrong consoleです。

Architecture Overviewから読む時間がかかります。既存のタブと対話したい場合は、Content Scriptが必要です。

このコードでコンテンツスクリプトを設定しても、何も表示されません。どうして?コンテンツのスクリプトコードとページコードはcleanly separated(およびwindowオブジェクトは共有されていないため)です。

ページコードとやりとりするには、別の手順page-level injectionが必要です。これを行うと、コンソールでコードスニペットを実行するのと違っていてはなりません(デフォルトではin page's contextというコードを実行します)。

+0

私はそれを取得しました。ブラウザで開いたすべてのページにスクリプトを挿入し、問題は解決しました。提案していただきありがとうございます。 – Sunil

関連する問題