Contents.js 阻止页面加载 chrome 扩展程序

Contents.js blocking page load chrome extension

嘿伙计们,我正在构建一个扩展,但我有一个功能在 运行ning 时很重,它阻止了页面的加载,我想知道是否可以只 [=23] =] 在页面完全加载并在脚本或 manifest.json?

中进行交互之后

我目前将它放在 window.onload 中,但仍然阻止了页面的交互性。

脚本:

async function getEAN() {
    var EANIndex;
    var body = document.body.innerText;

    if ((EANIndex = body.indexOf('EAN')) !== -1) {
        body = body.slice(EANIndex, EANIndex + 100);
        const regexExpression = RegExp(/([^EAN]*$)*\d{3}\d{4,6}\d{3,5}\d/gm);
        return body.match(regexExpression)[0]
    }
    return false
}

window.onload = function() {
    if (window.location.pathname &&
        location.hostname.indexOf(".google.com") !== -1) {
        console.log(getEAN());
    }
}

这是否可能,如果可以,我该如何实现?

由于内容脚本本身微不足道,问题是由正则表达式内部的灾难性回溯引起的,特别是([^EAN]*$)*可以在任何地方匹配0个字符。

解决方案是使用后视条件:

/(?<=EAN\s*)\d{11,15}/gm