1つのWebサイトにpageActionを定義する方法はありますか?私はサンプルを見ました、そしてそれらの両方はそのファイルでbackground.js
示すために使用しchrome.pageAction.show(tabId)
ます。
質問する
100 次
1 に答える
1
特定のWebサイトのpageActionを表示するには、2つの方法があります。
コンテンツスクリプトの使用
特定のWebサイトでコンテンツスクリプトを実行し、ページアクションを要求するメッセージをバックグラウンドに渡します。
// contentscript.js
chrome.extension.sendMessage('showPageAction');
// background.js
chrome.extension.onMessage.addListener(function(message, sender) {
if (message == 'showPageAction') {
chrome.pageAction.show(sender.tab.id);
}
});
の一部manifest.json
:
"content_scripts": [{
"js": ["contentscript.js"],
"run_at": "document_start",
"matches": ["http://example.com/"]
}]
の有効な値matches
は、ドキュメントの一致パターンで正確に定義されています。
この例の一致パターンは一致しhttp://example.com/
、ではないことに注意してくださいhttp://example.com/index.html
。ウェブサイト上の何かと一致させたい場合は、http://example.com/*
(アスタリスクを付けて)を使用してください。
chrome.tabs
APIの使用
コンテンツスクリプトを使用したくない場合は、chrome.tabs
イベントを使用してページアクションを表示できます。
// background.js
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.url == 'http://example.com/') {
chrome.pageAction.show(tabId);
}
});
chrome.tabs
すでにAPIを使用している場合を除き、コンテンツスクリプトメソッドをお勧めします。なんで?マニフェストファイルでアクセス許可を要求する"tabs"
と、インストール時にユーザーに次の警告が表示されます。
インストールします
<name of your extension>
か?
アクセスできます:
タブとブラウジングアクティビティにアクセスします
于 2012-12-15T21:03:47.227 に答える