0

私の拡張機能はページ アクション (twitter.com でのみ利用可能) を使用しており、アドレス バーにアイコンを表示したい (そして今のところ少なくとも空で機能する) ようにしたいのですが、動作させることができません。ドキュメント サンドイッチ サンプルを使用して、次のように変更しました。

contentscript.js:

// Called when the url of a tab changes.
if(chrome.tabs.query(active(true),function{
  // If the url is twitter
  ( {'url':'https://google.com/google-results-string'}
  if (chrome.tabs.query({'url':'*://twitter.com/*'} , function(tabs){console.log(tabs)}){
    // ... show the page action.
    //chrome.pageAction.show(tabId);
    chrome.extension.sendRequest({}, function(response) {});
  }
};
// Listen for any changes to the URL of any tab.
chrome.tabs.onUpdated.addListener(checkForValidUrl);

background.js

function onRequest(request, sender, sendResponse) {
// Show the page action for the tab that the sender (content script)
// was on.
    chrome.pageAction.show(sender.tab.id);

// Return nothing to let the connection be cleaned up.
    sendResponse({});
};

// Listen for the content script to send a message to the background page.
chrome.extension.onRequest.addListener(onRequest);

なぜ機能しないのか、 chrome.tabs.query() url 属性の使用方法と * ://twitter.com/ * と照合する方法がわかりません。

4

1 に答える 1

1

Page Action by Content例を見ているべきだったときに、例をリンクして使用しましたPage Action by Url。必要なのは、backgroundページで次のようなものだけです。

function checkForValidUrl(tabId, changeInfo, tab) {
  if (tab.url.indexOf('twitter.com') > -1) {
    chrome.pageAction.show(tabId);
  }
};
chrome.tabs.onUpdated.addListener(checkForValidUrl);

content scriptURL を確認するだけの場合は、a を使用する必要はありません。

編集:現在のタブに対してのみテストしたい場合は、次のようなことができます:

chrome.tabs.onUpdated.addListener(function(tabId,info,tab){
  if(tab.active){
    if (tab.url.indexOf('twitter.com') > -1)
      chrome.pageAction.show(tabId);
  }
});
于 2013-04-09T20:58:27.330 に答える