跳到主要内容

WebPreferences 对象

  • devTools boolean (可选) - 是否启用 DevTools。如果设置为 false,则无法使用 BrowserWindow.webContents.openDevTools() 打开 DevTools。默认为 true
  • nodeIntegration boolean (可选) - 是否启用 Node.js 集成。默认为 false
  • nodeIntegrationInWorker boolean (可选) - 是否在 web worker 中启用 Node.js 集成。默认为 false。更多信息可在多线程中找到。
  • nodeIntegrationInSubFrames boolean (可选) - 启用 Node.js 在子帧(如 iframe 和子窗口)中支持的实验性选项。所有预加载脚本将为每个 iframe 加载,您可以使用 process.isMainFrame 来判断是否在主帧中。
  • preload string (可选) - 指定一个脚本,该脚本将在页面中其他脚本运行之前加载。无论 Node.js 集成是否开启,该脚本都将始终可以访问 Node.js API。该值应为脚本的绝对文件路径。当 Node.js 集成关闭时,预加载脚本可以将 Node.js 全局符号重新引入全局范围。请参阅此处的示例。
  • sandbox boolean (可选) - 如果设置,这将对与窗口关联的渲染器进行沙盒化,使其与 Chromium OS 级别的沙盒兼容,并禁用 Node.js 引擎。这与 nodeIntegration 选项不同,预加载脚本可用的 API 更受限制。在此处阅读有关该选项的更多信息此处
  • session Session (可选) - 设置页面使用的会话。除了直接传递 Session 对象外,您还可以选择使用 partition 选项,该选项接受一个分区字符串。当同时提供了 sessionpartition 时,将优先使用 session。默认为默认会话。
  • partition string (可选) - 根据会话的分区字符串设置页面使用的会话。如果 partitionpersist: 开头,页面将使用一个持久会话,该会话可供应用程序中具有相同 partition 的所有页面使用。如果没有 persist: 前缀,页面将使用内存中会话。通过分配相同的 partition,多个页面可以共享相同的会话。默认为默认会话。
  • zoomFactor number (可选) - 页面的默认缩放因子,3.0 表示 300%。默认为 1.0
  • javascript boolean (可选) - 启用 JavaScript 支持。默认为 true
  • webSecurity boolean (可选) - 当 false 时,它将禁用同源策略(通常供人们测试网站时使用),并且如果用户未设置此选项,则将 allowRunningInsecureContent 设置为 true。默认为 true
  • allowRunningInsecureContent boolean (可选) - 允许 HTTPS 页面运行来自 HTTP URL 的 JavaScript、CSS 或插件。默认为 false
  • images boolean (可选) - 启用图像支持。默认为 true
  • imageAnimationPolicy string (可选) - 指定如何运行图像动画(例如 GIF)。可以是 animate(动画)、animateOnce(动画一次)或 noAnimation(无动画)。默认为 animate
  • textAreasAreResizable boolean (可选) - 使 TextArea 元素可调整大小。默认为 true
  • webgl boolean (可选) - 启用 WebGL 支持。默认为 true
  • plugins boolean (可选) - 是否启用插件。默认为 false
  • experimentalFeatures boolean (可选) - 启用 Chromium 的实验性功能。默认为 false
  • scrollBounce boolean (可选) macOS - 在 macOS 上启用滚动回弹(rubber banding)效果。默认为 false
  • enableBlinkFeatures string (可选) - 以 , 分隔的功能字符串列表,例如 CSSVariables,KeyboardEventKey 以启用。支持的功能字符串的完整列表可在 RuntimeEnabledFeatures.json5 文件中找到。
  • disableBlinkFeatures string (可选) - 以 , 分隔的功能字符串列表,例如 CSSVariables,KeyboardEventKey 以禁用。支持的功能字符串的完整列表可在 RuntimeEnabledFeatures.json5 文件中找到。
  • defaultFontFamily Object (可选) - 设置字体系列的默认字体。
    • standard string (可选) - 默认为 Times New Roman
    • serif string (可选) - 默认为 Times New Roman
    • sansSerif string (可选) - 默认为 Arial
    • monospace string (可选) - 默认为 Courier New
    • cursive string (可选) - 默认为 Script
    • fantasy string (可选) - 默认为 Impact
    • math string (可选) - 默认为 Latin Modern Math
  • defaultFontSize Integer (可选) - 默认为 16
  • defaultMonospaceFontSize Integer (可选) - 默认为 13
  • minimumFontSize Integer (可选) - 默认为 0
  • defaultEncoding string (可选) - 默认为 ISO-8859-1
  • backgroundThrottling boolean (可选) - 当页面变为后台时是否限制动画和计时器。这也会影响页面可见性 API。当单个浏览器窗口中至少有一个webContents禁用了 backgroundThrottling 时,整个窗口及其显示的其它webContents都将绘制和交换帧。默认为 true
  • offscreen Object | boolean (可选) - 是否为浏览器窗口启用离屏渲染。默认为 false。有关详细信息,请参阅离屏渲染教程
    • useSharedTexture boolean (可选) 实验性 - 是否使用 GPU 共享纹理进行加速绘制事件。默认为 false。有关详细信息,请参阅离屏渲染教程
  • contextIsolation boolean (可选) - 是否在单独的 JavaScript 上下文中运行 Electron API 和指定的 preload 脚本。默认为 truepreload 脚本运行的上下文将只拥有自己专用的 documentwindow 全局变量,以及自己的一组 JavaScript 内置对象(ArrayObjectJSON 等),所有这些对于加载的内容都是不可见的。Electron API 将只在 preload 脚本中可用,而不是加载的页面中。当加载可能不受信任的远程内容时,应使用此选项,以确保加载的内容不能篡改 preload 脚本和正在使用的任何 Electron API。此选项使用与 Chrome 内容脚本相同的技术。您可以在开发者工具中通过选择控制台选项卡顶部组合框中的“Electron Isolated Context”条目来访问此上下文。
  • webviewTag boolean (可选) - 是否启用 <webview> 标签。默认为 false注意:<webview> 配置的 preload 脚本在执行时将启用 Node.js 集成,因此您应确保远程/不受信任的内容无法创建带有恶意 preload 脚本的 <webview> 标签。您可以使用 webContents 上的 will-attach-webview 事件来去除 preload 脚本并验证或更改 <webview> 的初始设置。
  • additionalArguments string[] (可选) - 将附加到此应用程序渲染器进程的 process.argv 中的字符串列表。对于向渲染器进程预加载脚本传递少量数据非常有用。
  • safeDialogs boolean (可选) - 是否启用浏览器风格的连续对话框保护。默认为 false
  • safeDialogsMessage string (可选) - 当触发连续对话框保护时显示的消息。如果未定义,将使用默认消息,请注意当前默认消息是英文且未本地化。
  • disableDialogs boolean (可选) - 是否完全禁用对话框。会覆盖 safeDialogs。默认为 false
  • navigateOnDragDrop boolean (可选) - 将文件或链接拖放到页面上是否会导致导航。默认为 false
  • autoplayPolicy string (可选) - 适用于窗口内容的自动播放策略,可以是 no-user-gesture-required(无需用户手势)、user-gesture-required(需要用户手势)、document-user-activation-required(需要文档用户激活)。默认为 no-user-gesture-required
  • disableHtmlFullscreenWindowResize boolean (可选) - 进入 HTML 全屏时是否阻止窗口大小调整。默认为 false
  • accessibleTitle string (可选) - 一个仅提供给辅助工具(如屏幕阅读器)的替代标题字符串。此字符串对用户不可见。
  • spellcheck boolean (可选) - 是否启用内置拼写检查器。默认为 true
  • enableWebSQL boolean (可选) - 是否启用 WebSQL API。默认为 true
  • v8CacheOptions string (可选) - 强制执行 blink 使用的 v8 代码缓存策略。接受的值包括:
    • none - 禁用代码缓存
    • code - 基于启发式的代码缓存
    • bypassHeatCheck - 绕过代码缓存启发式,但采用惰性编译
    • bypassHeatCheckAndEagerCompile - 同上,但编译是即时进行的。默认策略为 code
  • enablePreferredSizeMode boolean (可选) - 是否启用首选大小模式。首选大小是包含文档布局所需的最小尺寸,而无需滚动。启用此功能将导致当首选大小更改时,在 WebContents 上触发 preferred-size-changed 事件。默认为 false
  • transparent boolean (可选) - 是否为访客页面启用背景透明。默认为 true注意: 访客页面的文本和背景颜色来源于其根元素的配色方案。当启用透明度时,文本颜色仍会相应改变,但背景将保持透明。
  • enableDeprecatedPaste boolean (可选) 已废弃 - 是否启用 paste execCommand。默认为 false
  • enableCornerSmoothingCSS boolean (可选) 实验性 - 是否启用 -electron-corner-smoothing CSS 规则。默认为 true