Chrome浏览器扩展程序:如何为特定页面的所有外发链接激活页面操作?

时间:2010-03-20 15:58:17

标签: google-chrome google-chrome-extension

我希望为某个页面的所有外发链接激活我的页面操作。我该怎么做呢?我查过文档无济于事。任何指针都将不胜感激!

2 个答案:

答案 0 :(得分:1)

  1. Google Chrome API没有此类API,但您可以使用标准的Google Chrome扩展程序API实现所需的功能。
  2. 您需要实施content script
  3. 您的内容脚本应该修改您要处理的页面的DOM,并使用您的自定义javascript覆盖所有外向链接,这些链接将执行一些操作并打开单击的链接。
  4. 要修改链接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应包含实际的点击处理。

答案 1 :(得分:0)

只是好奇心,为什么不使用你可以收听的Chrome Extensions Tab Events onUpdated onCreated。当用户点击页面上的链接时,它将在onUpdated中触发事件。

所以在你的background.html中,你可以这样做:

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

onCreated也是如此。然后在加载时,您可以决定如何处理pageAction。