电子:防止 <style> DOM 中的标签加载



是否有一种方法可以在显示页面之前从电子webview中删除所有样式?

到目前为止,我可以在加载文档后注入JS删除所有样式:

document.addEventListener("DOMContentLoaded", function(){
  document.querySelectorAll('link[rel="stylesheet"], style').forEach(elem => elem.disabled = true);
});

这里的问题是,样式将在删除样式之前短暂(〜1秒(显示。

我也可以在我的主类中使用以下内容来删除页面加载之前的所有.CSS文件:

session.webRequest.onBeforeRequest({urls: ['https://*/*.css', 'http://*/*.css']}, function(details, callback) {
  callback({cancel: true});
});

但是,这不会删除嵌入在DOM中的标签。为了更好地了解我要做的事情,您可以查看Firefox的"无样式"功能(查看 -> page样式 ->否样式(。

预先感谢。

我可以想到两种方法来防止这种情况:

  1. 给WebView具有可见性:隐藏样式,并在以后可见。
  2. 指向一个转发代理,他将脱离内联和链接的CSS

1号对我来说是一个更快,更可靠的解决方案,但我没有尝试过。

让我知道情况如何。

最新更新