无法向 webNavigation.onCompleted 添加事件侦听器

时间:2021-05-27 06:09:51

标签: google-chrome-extension

使用下面的模拟功能和开发控制台:

此调用将起作用:

chrome.webNavigation.onCompleted.addListener(processWebNavChange, filtera);

但是当我实际传入我真正的 var filter 时,它会抛出此错误: Uncaught TypeError: Could not add listener

我的实际数据如下所示:

{
    url: [ {hostContains: ".im88rmbOwZ"} ]
}
function registerWebNavListener() {
    var matchers = getUrlMatchers();
    var filter = {
        url: matchers
    };
    // test with mock data filtera that actually works
    const filtera = {
      url:
      [
        {hostContains: "example.com"},
      ]
    }
    if (matchers.length > 0) {
        chrome.webNavigation.onCompleted.addListener(processWebNavChange, filtera);
    }
}

async function processWebNavChange(data) {
}

我实际使用的数据结构有问题吗?我不相信我返回的过滤器对象不正确 }

编辑: 我添加了一个新的

const filterb = {
        url: [ {hostContains: ".im88rmbOwZ"} ]
    };

它仍然失败了。单个条目 {hostContains: ".im88rmbOwZ"} 是从 getURLMatchers() 返回的第一项,我将其用作返回真实数据的示例。

1 个答案:

答案 0 :(得分:0)

上述对大写字母的评论是问题的原因。将所有内容转换为小写解决了问题。

虽然,我不清楚为什么这会成为一个问题。 (如果在 Chromium 源代码事件过滤器处理程序中有任何提示,如果能指出,我将不胜感激)。

相关问题