特定のページからのすべての外部リンクに対してページ アクションを有効にしたいと考えています。どうすればそれを行うことができますか?私は無駄にドキュメントを調べました。任意のポインタをいただければ幸いです!
質問する
1727 次
2 に答える
1
- Google Chrome API にはそのような API はありませんが、必要な機能は標準の Google chrome Extensions API を使用して実装できます。
- コンテンツ スクリプトを実装する必要があります
- コンテンツ スクリプトは、処理したいページの 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 に答える