2012-02-21 6 views
2

ブックマークレットはポップアップ(bookmarklet.js)だけをロードすることになっていますが、クリックすると現在のタブにブックマークレットが開き、ポップアップとして表示されます。このChromeの拡張機能が2回読み込まれるのはなぜですか?

background.htmlファイル:

<script> 
chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.executeScript(tab.id, {file: "bookmarklet.js"}) 
}); 
</script> 

bookmarklet.jsファイル:

var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?  k():(x? x.createRange().text:0)),f='http://www.quora.com/board/bookmarklet',l=d.location,e=encodeURIComponent,p='?v=1&url='+e(l.href),u=f+p;try{if(!/^(.*\.)?quora[^.]*$/.test(l.host))throw(0);}catch(z){a =function(){if(!w.open(u,'_blank','toolbar=0,scrollbars=no,resizable=1,status=1,width=430,height=400'))l.href=u;};if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else a();}void(0o) 

答えて

3

あなたはmanifest.jsonファイルのポップアップhtmlファイルの場所を設定する必要があります。ポップアップファイルには、bookmarklet.jsのスクリプトを含めることができます。ブラウザアクションにポップアップがある場合、onClickedは起動しないため、background.htmlのスクリプトはもう必要ありません。拡張子アイコンをクリックすると、ポップアップが表示されます。または、setPopup()メソッドを使用することもできます。

記載されているものすべてhere

関連する問題