我正在编写一个chrome扩展程序,我希望在加载this之前从页面中删除内容。我只是检查一个预定列表中是否存在DOM元素,然后将其删除。
如果我在manifest.json中使用“run_at”:“document_end”,该脚本可以工作,但是当我使用“run_at”:“document_start”时,它将不起作用。这会导致问题,因为在显示页面和删除元素之间存在延迟,我称之为“DOM闪烁”。
我在DOM之前尝试过(document.addEventListener('DOMContentLoaded',function())和window.onload(window.onload = function(event)),并且在manifest.json中的:start / at:end推荐here,但它们实际上都没有在元素显示在屏幕上之前删除元素(即我能够删除元素,但不能在没有闪烁原始内容的情况下进行瞬间扫描)。
然后,我再仔细看看教程中的应用程序,看到如果仔细观察,你会看到维基百科页面的“死亡”部分在删除之前加载。所以我的问题是,是否有可能在页面显示之前从html中删除内容,然后在没有看到内容被删除的情况下向用户显示页面?我只看过this,它使用了一种名为MutationObserver的东西,但我无法让它工作,并且知道必须有一种更简单的方法。
谢谢!
编辑:我让变异观察者使用this post工作,但这仍然不会消除DOM闪烁(并且仍然不会与“run_at”:manifest.json中的“document_end”一起运行)。