Google chrome Chrome浏览器扩展:如何为特定页面的所有传出链接激活页面操作?

Google chrome Chrome浏览器扩展:如何为特定页面的所有传出链接激活页面操作?,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我想我的页面操作被激活的所有传出链接从一个特定的网页。我该怎么做呢?我看了这些文件,但没有用。任何提示都将不胜感激 Google Chrome API没有这样的API,但您想要的功能可以使用标准的Google Chrome Extensions API实现 你需要实施 您的内容脚本应该修改要处理的页面的DOM,并使用自定义javascript覆盖所有传出链接,这将完成一些工作并打开单击的链接 要修改link href,您可以执行以下操作: function processLink(element

我想我的页面操作被激活的所有传出链接从一个特定的网页。我该怎么做呢?我看了这些文件,但没有用。任何提示都将不胜感激

  • Google Chrome API没有这样的API,但您想要的功能可以使用标准的Google Chrome Extensions API实现
  • 你需要实施
  • 您的内容脚本应该修改要处理的页面的DOM,并使用自定义javascript覆盖所有传出链接,这将完成一些工作并打开单击的链接
  • 要修改link 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
    应包含对单击的实际处理

  • Google Chrome API没有这样的API,但您想要的功能可以使用标准的Google Chrome Extensions API实现
  • 你需要实施
  • 您的内容脚本应该修改要处理的页面的DOM,并使用自定义javascript覆盖所有传出链接,这将完成一些工作并打开单击的链接
  • 要修改link 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
    应该包含对点击的实际处理。

    只是好奇,为什么不使用您可以监听的OnUpdate onCreated。当用户单击页面上的链接时,它将进入并在OnUpdate内触发事件

    因此,在background.html中,您可以执行以下操作:

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

    对onCreated也是一样。然后在加载时,您可以决定如何处理页面操作。

    只是好奇,为什么不使用you can listen for onUpdate onCreated。当用户单击页面上的链接时,它将进入并在OnUpdate内触发事件

    因此,在background.html中,您可以执行以下操作:

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

    对onCreated也是一样。然后,在加载页面时,您可以决定如何处理页面操作。

    实际上,我想到了类似的方法。但是链接将如何向新选项卡发出信号,表明它应该激活页面操作?您可以添加函数
    processOutgoingLinkClick()
    并呈现a.href=“javascript:processOutgoingLinkClick('“+element.href+”)”函数
    processOutgoingLinkClick
    应该包含实际的处理。啊,我现在明白了。然而。。。我是否能够告诉用户是否希望在同一页面、新选项卡或新窗口中打开该选项卡?不过,这将是一个小问题。谢谢嗯,你们至少有原始链接的目标属性,但我不确定这是否足够。实际上我想到了类似的东西。但是链接将如何向新选项卡发出信号,表明它应该激活页面操作?您可以添加函数
    processOutgoingLinkClick()
    并呈现a.href=“javascript:processOutgoingLinkClick('“+element.href+”)”函数
    processOutgoingLinkClick
    应该包含实际的处理。啊,我现在明白了。然而。。。我是否能够告诉用户是否希望在同一页面、新选项卡或新窗口中打开该选项卡?不过,这将是一个小问题。谢谢嗯,您至少有原始链接的目标属性,但我不确定这是否足够。