1

特定のページからのすべての外部リンクに対してページ アクションを有効にしたいと考えています。どうすればそれを行うことができますか?私は無駄にドキュメントを調べました。任意のポインタをいただければ幸いです!

4

2 に答える 2

1
  1. Google Chrome API にはそのような API はありませんが、必要な機能は標準の Google chrome Extensions API を使用して実装できます。
  2. コンテンツ スクリプトを実装する必要があります
  3. コンテンツ スクリプトは、処理したいページの DOM を変更し、すべての発信リンクをカスタム JavaScript でオーバーライドして、何らかの処理を行い、クリックされたリンクを開く必要があります。

リンクの href を変更するには、次のようにします。

function processLink(element, newHref) {
  var a = document.createElement("a");
  a.href        = newHref;
  a.textContent = element.textContent;
  a.title       = element.title;

  element.parentNode.replaceChild(a, element);
}

更新 1。

newHref の代わりに、次のようなものを生成できます

a.href = "javascript:processOutgoingLinkClick('" + element.href + "')"

関数processOutgoingLinkClickには、クリックの実際の処理が含まれている必要があります。

于 2010-03-20T16:49:36.997 に答える
0

ただの好奇心ですが、onUpdated onCreated をリッスンできるChrome 拡張機能タブ イベントを使用しないのはなぜですか。ユーザーがページ上のリンクをクリックすると、onUpdated 内でイベントが発生します。

したがって、background.html 内で次のことができます。

chrome.tabs.onUpdated.addListener(function(tabId, info) {
  if (info.status === 'loading')
    console.log('Loading url ... ' + info.url)
});

onCreated についても同じことが言えます。次に、読み込み中に、pageAction をどうするかを決定できます。

于 2010-03-20T19:48:41.847 に答える