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

时间:2018-04-21 06:49:34

标签: javascript html css webview electron

有没有办法在显示页面之前从Electron webview中删除所有样式?

&#xA;&#xA;

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

&#xA;&#xA;
  document.addEventListener(“DOMContentLoaded”,function(){&#xA; document.querySelectorAll('link [rel =“stylesheet”] ,style')。forEach(elem =&gt; elem.disabled = true);&#xA;});&#xA;  
&#xA;&#xA;

问题这里的样式将在删除样式之前显示一小段时间(约1秒)。

&#xA;&#xA;

我也可以在我的Main类中使用以下内容来删除所有样式。页面加载前的css文件:

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

但是,这并不会删除嵌入在DOM中的标记。为了更好地了解我正在尝试做什么,您可以查看Firefox的“无风格”功能(查看 - >页面样式 - >无样式)。

&#xA;&#xA;

提前致谢。

&#xA;

1 个答案:

答案 0 :(得分:0)

我可以通过两种方式来防止这种情况:

  1. 为webview提供可见性:隐藏的样式,并在以后显示。
  2. 指向将删除内联和链接CSS的转发代理
  3. 1号对我来说是一个更快更可靠的解决方案,但我还没有尝试过。

    让我知道它是怎么回事。