网页内容
渲染并控制网页
进程: 主进程
webContents是个专门负责渲染和控制页面的EventEmitter,它也是BrowserWindow 对象的属性,
访问webContents对象的示例:
const {BrowserWindow} = require('electron')
let win = new BrowserWindow({width: 800, height: 1500})
win.loadURL('http://github.com')
let contents = win.webContents
console.log(contents)方法
webContents 对象有下列方法:
const {webContents} = require('electron')
console.log(webContents)webContents.getAllWebContents()
webContents.getAllWebContents()用途:获取所有
WebContents实例组成的数组(WebContents[])
实例包含了全部窗口,网页视图,打开的开发者工具栏和开发者工具栏背景页面的所有web内容。
webContents.getFocusedWebContents()
webContents.getFocusedWebContents()用途:获取应用程序里已聚焦的Web内容(
WebContents或null)
webContents.fromId(id)
webContents.fromId(id)用途:获取具有给定ID的WebContents实例(
WebContents)
idInteger
实例事件
WebContents具有以下实例事件:
事件: 'did-finish-load'
触发:导航完成时(即选项卡中的微调框(spinner)已停止旋转,并且已分派
onload事件)
事件: 'did-fail-load'
触发:加载失败或者是被取消(比如调用了
window.stop())时
返回:
eventEventerrorCodeIntegererrorDescriptionStringvalidatedURLStringisMainFrameBoolean
事件: 'did-frame-finish-load'
触发:frame窗口 完成导航时
返回:
eventEventisMainFrameBoolean
事件: 'did-start-loading'
触发:选项卡中的微调框(spinner)开始旋转(loading)时
事件: 'did-stop-loading'
触发:选项卡中的微调框(spinner)结束了旋转(loading)时
事件: 'did-get-response-details'
触发:所请求资源的相关详细信息可用时
返回:
eventEventstatusBoolean 下载资源的套接字连接newURLStringoriginalURLStringhttpResponseCodeIntegerrequestMethodStringreferrerStringheadersObjectresourceTypeString
事件: 'did-get-redirect-request'
触发:发起的请求资源被重定向时
返回:
eventEventoldURLStringnewURLStringisMainFrameBooleanhttpResponseCodeIntegerrequestMethodStringreferrerStringheadersObject
事件: 'dom-ready'
触发:指定 frame 中的文档 加载完成时
返回:
eventEvent
事件: 'page-favicon-updated'
触发:网页接收到(图标的url)favicon url时
返回:
eventEventfaviconsString[] - 网址数组
事件: 'new-window'
触发:页面请求为
url打开一个新窗口时
返回:
eventEventurlStringframeNameStringdispositionString - 可为default,foreground-tab,background-tab,new-window,save-to-disk和other.optionsObject - 创建新BrowserWindow时使用的参数.additionalFeaturesString[] - 给予window.open()的非标准句柄(不是由Chromium或Electron处理的句柄)。
当页面通过 window.open或外部链接(如 <a target='_blank'>)来请求 url打开一个新窗口(默认创建一个新的 BrowserWindow)时触发。
如果调用 event.preventDefault(),阻止创建新 BrowserWindow,你必须设置 event.newGuest来引用新的 BrowserWindow实例,否则可能会导致意外的行为.
事件: 'will-navigate'
触发:用户或页面想要开始导航(比如更改
window.location对象或用户单击页面中的链接)时
返回:
eventEventurlString
如果是 以webContents.loadURL和 webContents.back之类的API以编程方式启动导航,以及在页内跳转如点击了锚链接或更新 window.location.hash时,该事件不会触发,这时您可以使用 did-navigate-in-page事件达到目的。
需要阻止导航,请调用 event.preventDefault()。
事件: 'did-navigate'
触发:导航完成时
返回:
eventEventurlString
在页内跳转如点击了锚链接或更新 window.location.hash,时,该事件不会触发,这时您可以使用 did-navigate-in-page事件达到目的。
事件: 'did-navigate-in-page'
触发:页内跳转时
返回:
eventEventurlStringisMainFrameBoolean
如点击了锚链接 或 DOM的hashchange事件被触发时.虽然页面的url已改变但它不会跳出界面
Event: 'will-prevent-unload'
触发:当
beforeunload尝试取消卸载页面时
返回:
eventEvent
调用 event.preventDefault() 可忽略 beforeunload并允许卸载页面.
事件: 'crashed'
触发:渲染进程崩溃或被中断时
返回:
eventEventkilledBoolean
事件: 'plugin-crashed'
触发:插件进程崩溃时
返回:
eventEventnameStringversionString
事件: 'destroyed'
触发:
webContents被销毁时
事件: 'before-input-event'
触发:进行分派
keydown和keyup事件之前
返回:
eventEventinputObject -输入属性typeString - 如keyUp或keyDownkeyString - 相当于 [KeyboardEvent.key][keyboardevent]isAutoRepeatBoolean - 相当于 [KeyboardEvent.repeat][keyboardevent]shiftBoolean - 相当于 [KeyboardEvent.shiftKey][keyboardevent]controlBoolean - 相当于 [KeyboardEvent.controlKey][keyboardevent]altBoolean - 相当于 [KeyboardEvent.altKey][keyboardevent]metaBoolean - 相当于 [KeyboardEvent.metaKey][keyboardevent]
调用 event.preventDefault则禁止页面调用 keydown或 keyup事件。
事件: 'devtools-opened'
触发:开发调试工具打开时
事件: 'devtools-closed'
触发:开发调试工具关闭时
事件: 'devtools-focused'
触发:开发调试工具被聚焦或打开时
事件: 'certificate-error'
触发:验证
url的证书(certificate) 失败或错误时
返回:
eventEventurlStringerrorString - 错误代码certificateCertificatecallbackFunctionisTrustedBoolean -证书是否受信任
该事件使用方法类似 app模块的 certificate-error事件
事件: 'select-client-certificate'
触发:请求客户端证书时
返回:
eventEventurlURLcertificateListCertificate[]callbackFunctioncertificateCertificate - 必须是来自给定列表的证书
该事件使用方法类似 app模块的 select-client-certificate事件
事件: 'login'
触发:
webContents进行基本验证时
返回:
eventEventrequestObjectmethodStringurlURLreferrerURL
authInfoObjectisProxyBooleanschemeStringhostStringportIntegerrealmString
callbackFunctionusernameStringpasswordString
该事件使用方法类似 app模块的 login 事件.
事件: 'found-in-page'
触发:[
webContents.findInPage]进行页内查找并且找到可用值时
返回:
eventEventresultObjectrequestIdIntegeractiveMatchOrdinalInteger - 活动匹配位置matchesInteger -匹配数selectionAreaObject -第一个匹配区域的坐标。finalUpdateBoolean
事件: 'media-started-playing'
触发:媒体开始播放时
事件: 'media-paused'
触发:媒体暂停或播放完毕时
事件: 'did-change-theme-color'
触发:页面的主题颜色被更改时
通常是因为使用了元标记如theme-color引起:
事件: 'update-target-url'
触发:鼠标移动到链接或键盘将焦点移动到链接时
返回:
eventEventurlString
事件: 'cursor-changed'
触发:更改光标类型时
返回:
eventEventtypeString 可选值有default,crosshair,pointer,text,wait,help,e-resize,n-resize,ne-resize,nw-resize,s-resize,se-resize,sw-resize,w-resize,ns-resize,ew-resize,nesw-resize,nwse-resize,col-resize,row-resize,m-panning,e-panning,n-panning,ne-panning,nw-panning,s-panning,se-panning,sw-panning,w-panning,move,vertical-text,cell,context-menu,alias,progress,nodrop,copy,none,not-allowed,zoom-in,zoom-out,grab,grabbing,custom,如果参数为custom,image参数会在NativeImage中保存自定义光标图像.而如果为scale时,size和hotspot则保存关于自定义光标的相关信息。imageNativeImage (可选)scaleFloat (可选) - 光标缩放系数sizeObject (可选) -image的尺寸widthIntegerheightInteger
hotspotObject (可选) - 光标的hotspot坐标xInteger - x 坐标yInteger - y 坐标
事件: 'context-menu'
触发:有一个新的上下文菜单需要处理时
返回:
eventEventparamsObjectxInteger - x 坐标yInteger - y 坐标linkURLString - 如果链接的内容是图像,则包含上下文菜单被调用节点的链接.pageURLString - 调用上下文菜单的顶级页面链接frameURLString - 调用上下文菜单的子框架的URLsrcURLString - 调用上下文菜单的元素的源URL,如图片,音频或视频等链接mediaTypeString - 上下文菜单被调用的节点类型,如none,image,audio,video,canvas,file或plugin.hasImageContentsBoolean - 是否在具有非空内容的图像上调用上下文菜单。isEditableBoolean - 上下文是否可编辑。selectionTextString - 调用上下文菜单的选择文本。titleTextString -调用上下文菜单的标题或替代文本。misspelledWordString - 光标下的拼写错误的单词(如果有)。frameCharsetString -调用上下文菜单的框架的字符编码。inputFieldTypeString -该字段的类型(如果在输入字段上调用了上下文菜单)。可选值为none,plainText,password,other.menuSourceTypeString - 调用上下文菜单的输入源。可选值为none,mouse,keyboard,touch,touchMenu.mediaFlagsObject - 调用上下文菜单的媒体元素标志inErrorBoolean - 媒体元素是否已崩溃isPausedBoolean - 媒体元素是否已暂停。isMutedBoolean - 媒体元素是否静音。hasAudioBoolean - 媒体元素是否具有音频。isLoopingBoolean - 媒体元素是否循环。isControlsVisibleBoolean - 媒体元素的控件是否可见。canToggleControlsBoolean - 媒体元素的控件是否可以切换。canRotateBoolean - 是否可以旋转媒体元素。
editFlagsObject -渲染器是否相信它能够执行相应的操作。canUndoBoolean - 渲染器是否相信它可以撤消。canRedoBoolean - 渲染器是否相信它可以重做。canCutBoolean - 渲染器是否相信它可以裁剪。canCopyBoolean - 渲染器是否相信它可以复制canPasteBoolean - 渲染器是否相信它可以粘贴。canDeleteBoolean - 渲染器是否相信它可以删除。canSelectAllBoolean - 渲染器是否相信它可以全选。
事件: 'select-bluetooth-device'
触发:调用
navigator.bluetooth.requestDevice后进行蓝牙设备的选择时
返回:
eventEventdevicesBluetoothDevice[]callbackFunctiondeviceIdString
必须先启用 webBluetooth,才能调用 navigator.bluetooth .
如果没有调用 event.preventDefault,则默认选择第一个可用的设备。
callback应该用 deviceId来调用被选择,如果传递空的字符串到 callback则意味着取消请求。
事件: 'paint'
触发:生成新frame时
返回:
eventEventdirtyRectRectangleimageNativeImage - 整个 frame 的图像数据
只有脏区(dirty area)可传递至缓冲区。
事件: 'devtools-reload-page'
触发:开发者调试工具栏中重新加载webContents时
实例方法
contents.loadURL(url[, options])
contents.loadURL(url[, options])用途:加载
url到窗口中
urlStringoptionsObject (可选)httpReferrerString (可选) - 来源网址userAgentString (可选) - 发起请求的userAgent.extraHeadersString (可选) - 用\ n分隔的额外头postData(UploadRawData | UploadFile | UploadFileSystem | UploadBlob)[] - (可选)
url 必须包含协议前缀,比如 http:// 或 file://. 如果想要忽略 http 缓存的加载,请使用 pragma 头实现.
contents.downloadURL(url)
contents.downloadURL(url)用途:点击
url进行直接下载而无需在标签页中打开
urlString
此时 session 的 will-download 事件会被触发.
contents.getURL()
contents.getURL()用途:获取当前页面的链接(
String)
contents.getTitle()
contents.getTitle()用途:当前网页的标题(
String)
contents.isDestroyed()
contents.isDestroyed()用途:判断网页是否被销毁(
Boolean)
contents.isFocused()
contents.isFocused()用途:判断网页是否已聚焦(
Boolean)
contents.isLoading()
contents.isLoading()用途:判断网页是否仍在加载资源(
Boolean)
contents.isLoadingMainFrame()
contents.isLoadingMainFrame()用途:判断主框架(而不仅仅是其中的iframe或框架)是否仍在加载(
Boolean)
contents.isWaitingForResponse()
contents.isWaitingForResponse()用途:网页是否等待来自页面的主资源的第一次响应(而不仅仅是其中的iframe或框架)是否仍在加载(
Boolean)
content.stop()
content.stop()用途:停止任何待处理的导航
contents.reload()
contents.reload()用途:重新加载当前网页
contents.reloadIgnoringCache()
contents.reloadIgnoringCache()用途:忽略缓存的重新加载当前网页
content.canGoBack()
content.canGoBack()用途:判断浏览器是否可以可后退至上个网页(
Boolean)
contents.canGoForward()
contents.canGoForward()用途:判断浏览器是否可以前进到下一个网页(
Boolean)
contents.canGoToOffset(offset)
contents.canGoToOffset(offset)用途:判断网页是否可以转到
offset这个页面(Boolean)
offsetString
contents.clearHistory()
contents.clearHistory()用途:清除历史记录
contents.goBack()
contents.goBack()用途:使浏览器后退往上一页
contents.goForward()
contents.goForward()用途:使浏览器前进往下一页
contents.goToIndex(index)
contents.goToIndex(index)用途:将浏览器导航到指定索引
index的网页
indexString
contents.goToOffset(offset)
contents.goToOffset(offset)用途:从当前页到导航指定
offset
offsetString
contents.isCrashed()
contents.isCrashed()用途:判断渲染器进程是否崩溃(
Boolean)
contents.setUserAgent(userAgent)
contents.setUserAgent(userAgent)用途:重定义网页的userAgent(
Boolean)
userAgentString
contents.getUserAgent()
contents.getUserAgent()用途:获取网页的userAgent(
String)
contents.insertCSS(css)
contents.insertCSS(css)用途:将CSS插入到当前网页中
cssString
contents.executeJavaScript(code[, userGesture, callback])
contents.executeJavaScript(code[, userGesture, callback])用途:判断是否可解析(eval)执行代码
code并返回执行promise解析结果(Promise)
codeStringuserGestureBoolean (可选) - 是否支持用户手势 默认为false.callbackFunction (可选) - 脚本执行后调用resultAny
将 userGesture 设置为 true,可对去除 某些HTML API 只能通过 手势 进行调用 的限制,比如 requestFullScreen。
例子,返回一个代码解析结果:
contents.setAudioMuted(muted)
contents.setAudioMuted(muted)用途:使当前网页上的音频静音
mutedBoolean
contents.isAudioMuted()
contents.isAudioMuted()用途:判断网页是否已静音(
Boolean)
contents.setZoomFactor(factor)
contents.setZoomFactor(factor)用途:设置页面的缩放系数
factorNumber - 缩放系数
注意:缩放系数是百分制的,如3.0=300%。
contents.getZoomFactor(callback)
contents.getZoomFactor(callback)用途:获得当前缩放系数并调用
callback
callbackFunctionzoomFactorNumber
contents.setZoomLevel(level)
contents.setZoomLevel(level)用途:将缩放级别更改为指定级别
levelNumber - 缩放级别
原始大小为0,每个增量表示放大或缩小20%,默认限制为原始大小的300%至50%。
contents.getZoomLevel(callback)
contents.getZoomLevel(callback)用途:获得当前缩放级别并调用
callback
callbackFunctionzoomLevelNumber
contents.setVisualZoomLevelLimits(minimumLevel, maximumLevel)
contents.setVisualZoomLevelLimits(minimumLevel, maximumLevel)用途:设置缩放级别的最大值和最小值
minimumLevelNumbermaximumLevelNumber
contents.setLayoutZoomLevelLimits(minimumLevel, maximumLevel)
contents.setLayoutZoomLevelLimits(minimumLevel, maximumLevel)用途:设置基于布局(即非视觉)的缩放级别的最大值和最小值
minimumLevelNumbermaximumLevelNumber
contents.undo()
contents.undo()用途:在网页中执行撤销(
undo)
contents.redo()
contents.redo()用途:在网页中执行重做(
redo)
contents.cut()
contents.cut()用途:在网页中执行剪切(
cut)
contents.copy()
contents.copy()用途:在网页中执行复制(
copy)
contents.copyImageAt(x, y)
contents.copyImageAt(x, y)用途:将指定位置的图像复制到剪贴板
xInteger
yInteger
contents.paste()
contents.paste()用途:在网页中执行粘贴(
paste)
contents.pasteAndMatchStyle()
contents.pasteAndMatchStyle()用途:在网页中执行粘贴并清除样式(
pasteAndMatchStyle)
contents.delete()
contents.delete()用途:在网页中执行删除(
delete)
contents.selectAll()
contents.selectAll()用途:在网页中执行全选(
selectAll)
contents.unselect()
contents.unselect()用途:在网页中执行取消选择(
unselect)
contents.replace(text)
contents.replace(text)用途:在网页中执行替换(
replace)文本(text)
textString
contents.replaceMisspelling(text)
contents.replaceMisspelling(text)用途:在网页中执行校正(
replaceMisspelling)错别字(text)
textString
contents.insertText(text)
contents.insertText(text)用途:插入
text到焦点元素
textString
contents.findInPage(text[, options])
contents.findInPage(text[, options])用途:在页面中发起一个请求进行查找
text并返回一个Integer当做请求id
textString - 查找的内容, 不能为空.optionsObject (可选)forwardBoolean - (可选) 是否向前或向后查找, 默认为true.findNextBoolean - (可选) 是否连续查找, 默认为false.matchCaseBoolean - (可选) 查找是否区分大小写,, 默认为false.wordStartBoolean - (可选) 是否仅以首字母查找.. 默认为false.medialCapitalAsWordStartBoolean - (可选) 如果按大写字母开头匹配,那么后面的小写字母或无字母或多词合成等都视为匹配,默认为false.
您可以通过
found-in-page事件获取相应的请求结果.
contents.stopFindInPage(action)
contents.stopFindInPage(action)用途:使用给定的
action来为webContents停止任何findInPage请求
actionString - 指派[webContents.findInPage]请求结束时要执行的操作。clearSelection- 清除选择。keepSelection- 转为没有任何action的普通选择activateSelection- 聚焦并单击该选择
contents.capturePage([rect, ]callback)
contents.capturePage([rect, ]callback)用途:截图
rect区域并调用callback
rectRectangle (可选) -截图的rect区域, 如果为空,意味着截图整个页面.callbackFunctionimageNativeImage - NativeImage 实例,用于存储截图.
contents.hasServiceWorker(callback)
contents.hasServiceWorker(callback)用途:检查是否有已注册的ServiceWorker并调用
callback
callbackFunctionhasWorkerBoolean
contents.unregisterServiceWorker(callback)
contents.unregisterServiceWorker(callback)用途:注销所有ServiceWorker并调用
callback
callbackFunctionsuccessBoolean
contents.getPrinters()
contents.getPrinters()用途:获取系统打印机列表(PrinterInfo[])
例子:
contents.print([options])
contents.print([options])用途:打印窗口页面
optionsObject (可选)silentBoolean -true表示静默打印即将选择系统的默认打印机和默认设置进行打印.一般默认为false.printBackgroundBoolean - 同时打印网页的背景颜色和图像,默认为false.
在网页中调用 window.print() 即等同于 webContents.print({silent: false, printBackground: false}).
您可以使用 page-break-before: always; CSS样式强制打印到新页面中.
contents.printToPDF(options, callback)
contents.printToPDF(options, callback)用途:打印预览中将网页打印为PDF并调用
callback
optionsObjectmarginsTypeInteger - (可选) 边距类型,0为默认边距,1为无边距, and2为中等边距.pageSizeString - (可选) 大小类型, 可选A3,A4,A5,Legal,Letter,Tabloid或包含有height和width属性的对象printBackgroundBoolean - (可选) 是否打印CSS背景printSelectionOnlyBoolean - (可选) 是否只打印选择的内容landscapeBoolean - (可选)true为横向,false为纵向,如果css样式中强制定义了@page,landscape会被忽略.
callbackFunctionerrorErrordataBuffer - 一个包含生成的PDF数据的Buffer.
默认情况下,options为空时将被视为:
您可以使用 page-break-before: always; CSS样式强制打印到新页面中.
contents.addWorkSpace(path)
contents.addWorkSpace(path)用途:把指定路径添加到开发者工具栏的 工作区.但必须在 开发者工具栏 创建之后才能使用它
pathString
contents.removeWorkSpace(path)
contents.removeWorkSpace(path)用途:从开发者工具栏的工作区中移除指定的路径
pathString
contents.openDevTools([options])
contents.openDevTools([options])用途:打开开发者工具栏
optionsObject (可选)modeString - 停靠方向类型, 可选right(右侧),bottom(下方),undocked(窗口与工具栏分离),detach(新窗口打开工具栏). 默认为上次(最后一次)的方向
contents.closeDevTools()
contents.closeDevTools()用途:关闭开发者工具栏
contents.isDevToolsOpened()
contents.isDevToolsOpened()用途:判断开发者工具栏是否已打开(
Boolean)
contents.isDevToolsFocused()
contents.isDevToolsFocused()用途:判断开发者工具栏是否已聚焦(
Boolean)
contents.toggleDevTools()
contents.toggleDevTools()用途:切换开发者工具栏
contents.inspectElement(x, y)
contents.inspectElement(x, y)用途:在 (
x,y) 开始检查元素
xInteger
yInteger
contents.inspectServiceWorker()
contents.inspectServiceWorker()用途:打开用于服务工作者上下文的开发者工具栏
contents.send(channel[, arg1][, arg2][, ...])
contents.send(channel[, arg1][, arg2][, ...])用途:通过
channel向渲染进程异步发送消息或任意参数
channelString...argsany[]
参数将在JSON内部序列化,因此不会包含函数或原型链。渲染进程通过用 ipcRenderer 模块侦听 channel来处理它。
如从主进程向渲染进程发送消息 :
contents.enableDeviceEmulation(parameters)
contents.enableDeviceEmulation(parameters)用途:开启设备模拟
parametersObjectscreenPositionString - 指定要模拟的屏幕类型(默认:desktop)desktop- 桌面屏幕类型mobile- 移动屏幕类型
screenSizeObject - 屏幕大小(screenPosition == mobile)widthInteger - 模拟屏幕宽度heightInteger - 模拟屏幕高度
viewPositionObject - 在屏幕上定位视图(screenPosition == mobile) (默认:{x: 0, y: 0})xInteger -从左上角的x偏移yInteger - 从左上角的y偏移
deviceScaleFactorInteger - 设备缩放系数 (默认:0即设备原始缩放系数)viewSizeObject - 模拟视图大小 (空表示不覆盖)widthInteger - 模拟视图宽度heightInteger - 模拟视图高度
fitToViewBoolean - 是否需要缩小模拟视图以适应可用空间(默认:false)offsetObject - 可用空间内的模拟视图偏移 (不适合视图模式)(默认:{x: 0, y: 0})xFloat - 从左上角的x偏移yFloat - 从左上角的y偏移
scaleFloat - 可用空间内的模拟视图的比例 (不适合视图模式) (默认:1)
contents.disableDeviceEmulation()
contents.disableDeviceEmulation()用途:禁止
webContents.enableDeviceEmulation启用设备模拟
contents.sendInputEvent(event)
contents.sendInputEvent(event)用途:向页面发送输入
event
eventObjecttypeString (必填) - 事件类型,可选mouseDown,mouseUp,mouseEnter,mouseLeave,contextMenu,mouseWheel,mouseMove,keyDown,keyUp,char.modifiersString[] -事件的修饰符数组, 可选shift,control,alt,meta,isKeypad,isAutoRepeat,leftButtonDown,middleButtonDown,rightButtonDown,capsLock,numLock,left,right.
对键盘事件而言, event 对象有如下属性 :
keyCodeString (必需) - 将作为键盘事件发送的字符. 参考有效键代码列表
对鼠标事件而言, event 对象有如下属性 :
xInteger (必填)yInteger (必填)buttonString - 被按下的按钮,可选left,middle,rightglobalXIntegerglobalYIntegermovementXIntegermovementYIntegerclickCountInteger
对鼠标滚轮事件 mouseWheel来说, event 对象还有如下属性 :
deltaXIntegerdeltaYIntegerwheelTicksXIntegerwheelTicksYIntegeraccelerationRatioXIntegeraccelerationRatioYIntegerhasPreciseScrollingDeltasBooleancanScrollBoolean
contents.beginFrameSubscription([onlyDirty ,]callback)
contents.beginFrameSubscription([onlyDirty ,]callback)用途:开始订阅演示事件和捕获的帧,当有一个演示事件时调用
callback
onlyDirtyBoolean (可选) - 默认为falsecallbackFunctionframeBufferBuffer 一个包含原始像素数据的BufferdirtyRectRectangle
frameBuffer的数据在大多数机器上,像素数据有效地以32位BGRA格式存储,但是实际情况是取决于处理器的字节顺序的(大多数的处理器是存放小端序的,如果是在大端序的处理器上, 数据是32位ARGB格式) 。
contents.endFrameSubscription()
contents.endFrameSubscription()用途:结束订阅帧展示事件
contents.startDrag(item)
contents.startDrag(item)用途:开始对
item拖放操作
itemObjectfileString 或filesArray 被拖动文件的绝对路径iconNativeImage 被拖动时显示在光标下的图像,MacOS上必须是非空的图标。
contents.savePage(fullPath, saveType, callback)
contents.savePage(fullPath, saveType, callback)用途:尝试保存页面并返回是否成功的布尔(
Boolean)
fullPathString - 完整的文件路径saveTypeString - 指定保存类型.HTMLOnly- 只保存页面的HTMLHTMLComplete- 保存完整的html页面MHTML- 将完整的HTML页面保存为MHTML
callbackFunction -function(error) {}.errorError
contents.showDefinitionForSelection() macOS
contents.showDefinitionForSelection() macOS用途:在页面上搜索所选字词时弹出字典
contents.setSize(options)
contents.setSize(options)用途:设置页面
<webview>访客内容的页面尺寸
optionsObjectnormalObject (可选) - 页面的正常大小. 结合disableguestresize属性可手动重新调整<webview>内容尺寸widthIntegerheightInteger
contents.isOffscreen()
contents.isOffscreen()用途:是否启用了离屏渲染(
Boolean)
contents.startPainting()
contents.startPainting()用途:如果启用离屏渲染但未绘制则开始绘制
contents.stopPainting()
contents.stopPainting()用途:如果启用和正在绘制离屏渲染则停止绘制
contents.isPainting()
contents.isPainting()用途: 判断如果离屏渲染被启用,它当前是否正在绘制(
Boolean)
contents.setFrameRate(fps)
contents.setFrameRate(fps)用途: 如果离屏渲染被启用,则将帧率设置为1-60之间的值
fpsInteger
contents.getFrameRate()
contents.getFrameRate()用途: 如果离屏渲染被启用,则返回当前帧速率(
Integer)
contents.invalidate()
contents.invalidate()用途:完整重绘此网页内容所在窗口
如果屏幕渲染启用,则使框架无效并通过 'paint'事件生成一个新的。
contents.getWebRTCIPHandlingPolicy()
contents.getWebRTCIPHandlingPolicy()用途:获取WebRTC IP处理策略(
String)
contents.setWebRTCIPHandlingPolicy(policy)
contents.setWebRTCIPHandlingPolicy(policy)用途:完整重绘此网页内容所在窗口
policyString - 指定WebRTC IP处理策略
default- 暴露用户的公共和本地IP。使用此策略时,WebRTC将并有权枚举所有接口并绑定它们以发现公共接口.
default_public_interface_only-暴露用户的公共IP但不公开用户的本地IP。使用此策略时,WebRTC仅使用http默认路由并不会公开任何本地地址。
default_public_and_private_interfaces- 暴露用户的公共和本地IP。使用此策略时,WebRTC仅使用http由OS在多宿主端点上选择的默认路由。此项将会也暴露相关联的默认私人地址。
disable_non_proxied_udp- 不公开公共或本地IP。使用此策略时,WebRTC仅使用TCP联系对等体或服务器,除非代理服务器支持UDP。
设置WebRTC IP处理策略允许您控制通过WebRTC公开哪些IP。有关详细信息,请参阅BrowserLeaks
实例属性
contents.id
contents.id属性:
WebContents的唯一ID
contents.session
contents.session属性:
WebContents使用的一个Session对象(session)
contents.hostWebContents
contents.hostWebContents属性:可能拥有
WebContents的WebContents实例
contents.devToolsWebContents
contents.devToolsWebContents属性:
WebContents的开发调试工具栏
注意: 用户不应存储此对象,因为当DevTools已关闭时,它可能变为 null.
contents.debugger
contents.debuggerWebContents的Debugger实例。
[keyboardevent]: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
Last updated
Was this helpful?