7

クロムエクステンションを開発中で、問題があります。私はクロムのコンテキストメニューに項目を追加し、メニュー項目をクリックするとポップアップウィンドウを開きたいと思っています。私のコードは次のようになります:クロムエクステンションのコンテキストメニューのポップアップウィンドウ

function popup(url) { 
window.open(url, "window", "width=600,height=400,status=yes,scrollbars=yes,resizable=yes"); 
} 

chrome.contextMenus.create({"title": "Tumblr", "contexts":["page","selection","link","editable","image","video","audio"], "onclick": popup('http://example.com')}); 

しかし、このコードは私が望むように動作しません。ポップアップウィンドウは、コンテキストアイテムをクリックした後ではなく、クロム拡張設定の拡張機能を更新した後に表示されます。

ありがとうございます!

+0

ヤップ。私はバージョン2を使用しています。しかし、どうすればそれを作ることができますか?私はあまりjavascriptで教育されていません。 –

+0

@chaohuang OPコードにインラインイベントハンドラはありません。 –

答えて

5
chrome.contextMenus.create({... "onclick": popup('http://example.com')}) 

はすぐにpopup関数を呼び出し、ポップアップを開くようにします。関数への参照を渡す必要があります。あなたのコードが動作するように取得するには、関数内での関数呼び出しをラップ:

chrome.contextMenus.create({ 
    "title": "Tumblr", 
    "contexts": ["page", "selection", "link", "editable", "image", "video", "audio"], 
    "onclick": function() { 
     popup('http://example.com'); 
    } 
}); 

window.open()は、ポップアップを作成するために使用することができます。別の方法(それが存在することを知らせる)はchrome.windows.createです。

+0

素晴らしい!それは完全に動作します。どうもありがとう! –

関連する問題