0

Microsoft Edge拡張機能の開発を検討しています。基本的には、タブのHTMLコンテンツを読み込もうとしています。以下は私のソリューションのコードスニペットです。Microsoft Edge Extensionタブの内容

私が好きなmanifest.jsonを

{ 
    "name" : "HTML Reader", 
    "version" : "1.0.0.0", 
    "author" : "Stack Memory", 
    "browser_action" : 
    { 
     "default_icon" : 
     { 
      "20" : "icon_20.png", 
      "40" : "icon_40.png" 
     }, 
     "default_title" : "Sample extension", 
     "default_popup" : "index.html" 
    }, 
    "content_scripts" : [{ 
      "js" : ["js/index.js"], 
      "matches" : ["*://*/*"] 
     } 
    ], 

    "content_security_policy" : "script-src 'self'; object-src 'self'", 
    "default_locale" : "en", 
    "description" : "This is a sample extension that illustrates the JSON manifest schema", 

    "permissions" : 
    [ 
     "*://*/*", "notifications", "cookies", "tabs", "storage", "contextMenus", "background" 
    ], 
    "icons" : { 
     "128" : "icon_128.png", 
     "16" : "icon_16.png", 
     "48" : "icon_48.png" 
    }, 
    "minimum_edge_version" : "33.14281.1000.0", 
    "web_accessible_resources" : ["icon_48.png"] 
} 

の下に見える私のindex.jsは延長ボタンのクリックでonCodeCall実行機能

function getDomObject(tab) { 
    browser.tabs.sendMessage(tab.id, { 
     method: 'getDomContent' 
    },function(response) { 
     if (browser.runtime.lastError) { 
      console.log("Error: ", browser.runtime.lastError); 
     } else { 
      alert(response.innerText); 
     } 
    }); 
} 

function onCodeCall(){ 
    browser.tabs.query({currentWindow: true, active: true}, function(tabs){ 
     var tab = tabs[0]; 
     getDomObject(tab); 
    }); 
} 

以下のように見えます。

私は何のエラーも発生していないし、私のコールバック機能はヒットしません。このコードはChromeで正常に動作しますが、Edgeでは失敗します。

ご協力いただければ幸いです。おかげさまで

+0

'manifest.json'、' background.js'、 'content.js'を含む簡単なサンプルを提供してください。そして、あなたは 'background.js'で上記のメソッドを呼び出していますよね? –

答えて

2

tabs.sendMessageは、背景ページなどの拡張コンテキストでのみ呼び出すことができます。しかし、Microsoft EdgeやChromeに関係なく、明らかに動作しないコンテンツスクリプトで呼び出すことになります。

関連する問題