0

クローム拡張機能を作成しました。これは、使用してコンテキストメニューを変更し、次の -Chrome拡張機能は最初の数回は機能しません

コンテンツのスクリプトでは、バックグラウンドで

document.addEventListener("mousedown", function(event){ 
if(event.button == 2) { 
     if (isNaN(window.getSelection().toString())){ 
      chrome.extension.sendRequest({cmd: "createStringMenu"}); 
     } 
    else { 
     chrome.extension.sendRequest({cmd: "createNumberMenu"});    
    } 
} 

}, true); 

拡張子が新しく開いたブラウザのいずれかで初めて実行するときはいつでも

chrome.extension.onRequest.addListener(function(request) { 
if(request.cmd == "createStringMenu") { 
    chrome.contextMenus.removeAll(function() { 
     chrome.contextMenus.create({"title": "Send ' %s ' as SMS ", "contexts": ['selection'],"onclick": send_as_sms}); 
    }); 
} else if(request.cmd == "createNumberMenu") { 
    chrome.contextMenus.removeAll(function() { 
     chrome.contextMenus.create({"title": "Send SMS to %s ", "contexts": ["selection"],"onclick": send_sms_to}); 
    }); 
} 
}); 

拡張機能がインストールされている(およびWebページが更新されている)と、メニューは作成されません。その後、それはそうです。

どうすればよいですか?それを引き起こす原因は何ですか?

+0

拡張機能をインストールした後、またはブラウザを再起動した後(初めて新しいタブページから開始されますか?)は初めてですか?両方のスクリプトにデバッグログを追加して、呼び出されたものと呼び出されていないものを確認してください。 – serg

+0

ブラウザを再起動した後はいつも、拡張機能は最初の試行のために機能しなくなります。 – iamkhush

答えて

0

背景ページがそのコンテキストメニューの内容を変更する前にコンテキストメニューが表示されるために起こります。もう一度右クリックすると、最初に押したときに背景ページがコンテンツを既に変更しているため、2回目に機能します。

+0

Yaa、私は同じことを推測しましたが、どのようにそれを避けるべきですか? – iamkhush

関連する問題