我正在创建一个扩展程序,在呈现后对Google搜索结果进行小幅修改。
我最初使用onUpdated事件监听器来执行此操作,但了解到由于预渲染,事件不会持续触发。在预渲染期间,会触发onReplaced事件。一篇帖子建议同时实现onUpdated和onReplaced监听器,但即便如此,我也注意到有些事件会导致两个事件都被触发,导致修改发生两次。
此问题的潜在解决方案可能是识别onReplaced或onUpdated何时已经运行,以便另一个不运行。有没有可靠的方法来做到这一点?
关于onUpdated缺陷的文章有很多,似乎至少有四年多了。但是,它们似乎都没有提供可靠的解决方案。记录的错误的状态似乎甚至没有完全关闭(https://bugs.chromium.org/p/chromium/issues/detail?id=109557)
我也尝试过使用webNavigation.onDOMContentLoaded,webNavigation.onCompleted和webNavigation.onCommitted(灵感来自这篇文章:chrome.tabs.onupdated.addlistener doesn't work on cached pages)。但是对于所有这三个事件,在我的第一次谷歌搜索之后,它会触发,但之后它会停止触发任何其他搜索。
如果需要其他说明,请告知我们。我一直试图解决这个问题很多天了。感谢您提供的任何帮助/见解!