2016-11-07 7 views
1

コンポーネントがロードされると、拡張機能が実行される現在のタブにスクリプトが挿入されます。スクリプトは基本的にソースコードを取得し、それを文字列として保存します。だから、tabs.executeScriptと反応を使用する方法

、私componentWillMountに私は./js/scripts/getPageSource.jsは私の反応のアプリで使用されている私のindex.htmlファイルへの相対で、

componentWillMount() { 

    var result = ''; 
    chrome.tabs.executeScript(null, { 
     file: './js/scripts/getPageSource.js' 
    }, function() { 
     // If you try and inject into an extensions page or the webstore/NTP you'll get an error 
     if (chrome.runtime.lastError) { 
      result = 'There was an error injecting script : \n' + chrome.runtime.lastError.message; 

     } 
    }); 
} 

私のスクリプトのパス...次のようにスクリプトを挿入しようとしました。

エラーファイルが見つかりません。コンポーネントに相対的なパスを変更しましたが、まだファイルが見つかりません。

これは、反応がある開いたタブにスクリプトを挿入する正しい方法ではないかもしれないと思っています。これを行うより良い方法はありますか?ここで

EDIT

は私のmanifest.jsonファイル... ./js/scripts/getPageSource.jsが私のsrcフォルダが

+0

あなたは私が呼び出されているマニフェストファイルやスクリプトを追加する必要がある場合@Makyenが、私はそうすることができます。しかし、私の主な問題は、私はスクリプトを注入しようとしており、全く呼び出されていないということです。私が言う限りでは、スクリプトがあなたに何をしているのかを本当に知る必要はありませんか? – Bolboa

+0

@Makyen ok私はそれを追加しました – Bolboa

答えて

3

あなたからの相対パスを使用して、上記参照されて内側に配置されて

{ 
    "name": "Get pages source", 
    "version": "1.0", 
    "manifest_version": 2, 
    "description": "Get pages source from a popup", 
    "browser_action": { 
    "default_popup": "src/index.html" 
    }, 
    "permissions": ["tabs", "<all_urls>"] 
} 

私のパスですmanfest.jsonファイル。

MDN states:

のFirefoxで

は、相対URLは、現在のページのURLに関連して解決されています。 Chromeでは、これらのURLは、アドオンのベースURLに関連して解決されたです。あなたのmanifest.jsonをから

、それはのように見えるあなたのfileは次のようになります。

file: 'src/js/scripts/getPageSource.js' 
関連する問題