2010-03-20 35 views

回答

1
  1. 谷歌浏览器API没有这样的API,但是你想要的功能可以使用标准的谷歌浏览器扩展API来实现。
  2. 您需要实现content script
  3. 你的内容脚本应该修改要处理和覆盖你的自定义JavaScript所有出站链接,这将做一些东西,打开点击链接页面的DOM。

要修改链接的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 sh应该包含点击的实际处理。

+0

我想到了这样的事实。但是,链接将如何向新选项卡发出信号以激活页面操作? – int3 2010-03-20 17:15:24

+0

函数'processOutgoingLinkClick'应该包含实际的处理函数'processOutgoingLinkClick()' and render a.href =“javascript:processOutgoingLinkClick('”+ element.href +“')” – uthark 2010-03-20 17:19:48

+0

啊我现在明白了。但是,我能否告诉用户是否想要在同一页面,新标签页或新窗口中打开的标签?不过,这将是一个小问题。谢谢! – int3 2010-03-20 17:27:48

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。

+0

好吧,它不告诉我哪个标签负责创建它... – int3 2010-03-21 08:12:29

相关问题