Skip to main content

WebPreferences 对象

🌐 WebPreferences Object

  • devTools 布尔值(可选)- 是否启用开发者工具。如果设置为 false,将无法使用 BrowserWindow.webContents.openDevTools() 打开开发者工具。默认值为 true
  • nodeIntegration 布尔值(可选)- 是否启用节点集成。默认值为 false
  • nodeIntegrationInWorker 布尔值(可选)- 是否在 web workers 中启用节点集成。默认值为 false。更多信息可参见 多线程
  • nodeIntegrationInSubFrames 布尔值(可选)- 用于在子框架(如 iframes 和子窗口)中启用 Node.js 支持的实验性选项。你的所有预加载脚本将在每个 iframe 中加载,你可以使用 process.isMainFrame 来判断是否在主框架中。
  • preload 字符串(可选)- 指定一个将在页面其他脚本运行之前加载的脚本。无论是否开启 Node 集成,该脚本总是可以访问 Node API。该值应该是脚本的绝对文件路径。当关闭 Node 集成时,预加载脚本可以将 Node 全局符号重新引入到全局作用域中。示例请参见 这里
  • sandbox 布尔值(可选) - 如果设置此选项,将会对与窗口相关联的渲染器进行沙箱处理,使其兼容 Chromium 的操作系统级沙箱,并禁用 Node.js 引擎。这与 nodeIntegration 选项不同,并且预加载脚本可用的 API 更有限。自 Electron 20 起,默认值为 true。当 nodeIntegration 设置为 true 时,沙箱会自动禁用。更多关于该选项的信息请参见 这里
  • session 会话(可选)- 设置页面使用的会话。你可以选择直接传递 Session 对象,也可以使用 partition 选项,它接受一个分区字符串。当同时提供 sessionpartition 时,将优先使用 session。默认值为默认会话。
  • partition 字符串(可选)- 根据会话的分区字符串设置页面使用的会话。如果 partitionpersist: 开头,页面将使用对应用中具有相同 partition 的所有页面可用的持久会话。如果没有 persist: 前缀,页面将使用内存会话。通过分配相同的 partition,多个页面可以共享同一个会话。默认值为默认会话。
  • zoomFactor 数字(可选)- 页面的默认缩放因子,3.0 代表 300%。默认值为 1.0
  • javascript 布尔值(可选)- 启用 JavaScript 支持。默认值为 true
  • webSecurity 布尔值(可选)- 当 false 时,它将禁用同源策略(通常用于测试网站的使用),并在用户未设置此选项时将 allowRunningInsecureContent 设置为 true。默认值为 true
  • allowRunningInsecureContent 布尔值(可选)- 允许 https 页面运行来自 http URL 的 JavaScript、CSS 或插件。默认值为 false
  • images 布尔值(可选)- 启用图片支持。默认值为 true
  • imageAnimationPolicy 字符串(可选)- 指定如何运行图片动画(例如 GIF)。可以是 animateanimateOncenoAnimation。默认值是 animate
  • textAreasAreResizable 布尔值(可选)- 使 TextArea 元素可调整大小。默认值为 true
  • webgl 布尔值(可选)- 启用 WebGL 支持。默认值为 true
  • plugins 布尔值(可选)- 是否启用插件。默认值为 false
  • experimentalFeatures 布尔值(可选)- 启用 Chromium 的实验性功能。默认值为 false
  • scrollBounce 布尔值(可选) macOS - 在 macOS 上启用滚动反弹(橡皮筋)效果。默认值为 false
  • enableBlinkFeatures 字符串(可选)- 用 , 分隔的功能字符串列表,例如 CSSVariables,KeyboardEventKey 来启用。支持的完整功能字符串列表可以在 RuntimeEnabledFeatures.json5 文件中找到。
  • disableBlinkFeatures 字符串(可选)- 由 , 分隔的功能字符串列表,例如 CSSVariables,KeyboardEventKey 用于禁用。完整的支持功能字符串列表可以在 RuntimeEnabledFeatures.json5 文件中找到。
  • defaultFontFamily 对象(可选)- 设置字体系列的默认字体。
    • standard 字符串(可选)- 默认为 Times New Roman
    • serif 字符串(可选)- 默认为 Times New Roman
    • sansSerif 字符串(可选)- 默认为 Arial
    • monospace 字符串(可选)- 默认为 Courier New
    • cursive 字符串(可选)- 默认为 Script
    • fantasy 字符串(可选)- 默认为 Impact
    • math 字符串(可选)- 默认为 Latin Modern Math
  • defaultFontSize 整数(可选)- 默认为 16
  • defaultMonospaceFontSize 整数(可选)- 默认为 13
  • minimumFontSize 整数(可选)- 默认为 0
  • defaultEncoding 字符串(可选)- 默认为 ISO-8859-1
  • backgroundThrottling 布尔值(可选)- 当页面进入后台时是否限制动画和计时器。这也会影响 页面可见性 API。当一个单独的 浏览器窗口 中至少有一个 webContents 禁用了 backgroundThrottling,整个窗口以及该窗口中显示的其他 webContents 的帧都会被绘制和交换。默认值为 true
  • offscreen 对象 | 布尔值(可选)- 是否为浏览器窗口启用屏幕外渲染。默认为 false。查看更多详情,请参阅 屏幕外渲染教程
    • useSharedTexture 布尔值(可选)实验性 - 是否使用 GPU 共享纹理来加速绘制事件。默认为 false。更多详情请参见 离屏渲染教程
    • sharedTexturePixelFormat 字符串(可选)实验性 - 所请求的共享纹理输出格式。默认值为 argb。名称来源于 Chromium media::VideoPixelFormat 枚举后缀,仅支持其中的部分子集。纹理的实际输出像素格式和色彩空间应参考 paint 事件中的 OffscreenSharedTexture 对象。
      • argb - 请求的输出纹理格式是 8 位无符号归一化 RGBA,采用 SRGB SDR 颜色空间。
      • rgbaf16 - 请求的输出纹理格式是16位浮点RGBA,采用scRGB HDR色彩空间。
  • contextIsolation 布尔值(可选)- 是否在单独的 JavaScript 上下文中运行 Electron API 和指定的 preload 脚本。默认为 truepreload 脚本运行的上下文仅能访问其专属的 documentwindow 全局变量,以及其自身的一套 JavaScript 内置对象(ArrayObjectJSON 等),这些对于已加载的内容都是不可见的。Electron API 只会在 preload 脚本中可用,而对已加载的页面不可用。当加载可能不受信任的远程内容时,应使用此选项以确保加载的内容无法篡改 preload 脚本和正在使用的任何 Electron API。此选项使用了与 Chrome 内容脚本 相同的技术。你可以在开发者工具中通过在控制台标签顶部的下拉框中选择 "Electron Isolated Context" 条目来访问此上下文。
  • webviewTag 布尔值(可选)- 是否启用 <webview> 标签。默认值为 false注意: 当为 <webview> 配置的 preload 脚本执行时,会启用节点集成,因此你应确保远程/不可信的内容无法创建带有可能恶意 preload 脚本的 <webview> 标签。你可以使用 webContents 上的 will-attach-webview 事件来剥离 preload 脚本,并验证或修改 <webview> 的初始设置。
  • additionalArguments string[](可选)- 一个字符串列表,将在此应用的渲染进程中附加到 process.argv。对于向渲染进程预加载脚本传递少量数据非常有用。
  • safeDialogs 布尔值(可选)- 是否启用浏览器样式的连续对话保护。默认值为 false
  • safeDialogsMessage 字符串(可选)- 当触发连续对话保护时显示的消息。如果未定义,将使用默认消息,注意当前默认消息是英文的,尚未本地化。
  • disableDialogs 布尔值(可选)- 是否完全禁用对话框。会覆盖 safeDialogs。默认值为 false
  • navigateOnDragDrop 布尔值(可选)- 拖放文件或链接到页面上是否会导致页面导航。默认值是 false
  • autoplayPolicy 字符串(可选)- 要应用于窗口中内容的自动播放策略,可以是 no-user-gesture-requireduser-gesture-requireddocument-user-activation-required。默认值为 no-user-gesture-required
  • disableHtmlFullscreenWindowResize 布尔值(可选)- 是否在进入 HTML 全屏时防止窗口调整大小。默认值为 false
  • accessibleTitle 字符串(可选)- 仅提供给辅助功能工具(如屏幕阅读器)的备用标题字符串。此字符串不会直接显示给用户。
  • spellcheck 布尔值(可选)- 是否启用内置拼写检查器。默认值为 true
  • enableWebSQL 布尔值(可选)- 是否启用 WebSQL API。默认值是 true
  • v8CacheOptions 字符串(可选)- 强制使用 blink 的 v8 代码缓存策略。可接受的值有
    • none - 禁用代码缓存
    • code - 基于启发式的代码缓存
    • bypassHeatCheck - 绕过代码缓存启发式但使用延迟编译
    • bypassHeatCheckAndEagerCompile - 与上面相同,只是编译是急切的。默认策略是 code
  • enablePreferredSizeMode 布尔值(可选)- 是否启用首选尺寸模式。首选尺寸是容纳文档布局所需的最小尺寸——无需滚动。启用此功能将在首选尺寸变化时在 WebContents 上触发 preferred-size-changed 事件。默认值为 false
  • transparent 布尔值(可选)- 是否为访客页面启用背景透明。默认值为 true注意: 访客页面的文本和背景颜色来源于其根元素的 配色方案。启用透明后,文本颜色仍会相应变化,但背景将保持透明。
  • enableDeprecatedPaste 布尔值(可选)已弃用 - 是否启用 paste execCommand。默认值为 false
  • focusOnNavigation 布尔值(可选)- 在导航时是否聚焦 WebContents。默认值为 true