【问题标题】:.click() callback function explained.click() 回调函数解释
【发布时间】:2020-02-14 14:13:24
【问题描述】:

我正在制作 Google Chrome 扩展程序,并尝试在我的一个脚本中使用 .click() 函数。单击功能应该单击将我重定向到另一个页面的链接。一旦我被重定向,我想发送chrome.runtime 消息。

document.getElementsByClassName('example-link')[1].click(function() {
       console.log("Hello World");
        let data = {
            type: "example"
        }
        chrome.runtime.sendMessage({...data}); 

    });

到目前为止,页面重定向,但 console.log() 没有显示并且运行时消息没有发送。 我不确定我是否误解了回调函数的目的,或者脚本是否因为我在新页面上而停止运行。

任何解释/帮助将不胜感激。

【问题讨论】:

  • 这里的问题是您想在下一页加载时发送消息。 click() 没有回调。
  • 所以在新页面加载时,此脚本会再次从新加载,因此从未调用过回调?还是 .click() 函数根本没有回调?我该如何解决?
  • 点击没有回调,它只是触发动作。不知何故,您需要在下一页加载时调用它。我不是一个大的 chrome 扩展开发人员,所以我真的无能为力。将在选项卡中加载或更新。

标签: javascript google-chrome-extension


【解决方案1】:

click() 不接受回调。

为了检测您需要的导航:

  1. 监听onUpdated 事件(参见How to listen for url change with Chrome Extension。)
  2. 然后click() 触发导航

【讨论】:

  • 我最终在后台脚本中监听了变化: chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { if(tab.url !== undefined && changeInfo.status == "完成"){ } })
猜你喜欢
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
  • 2016-08-02
  • 1970-01-01
相关资源
最近更新 更多