原文:https://github.com/electron/electron/blob/master/docs/api/web-frame.md
譯者:Lin
自定義當前網頁的繪制
進程:渲染進程
一個縮放當前頁面到200%的例子。
const {webFrame} = require('electron')
webFrame.setZoomFactor(2)
方法
webFrame
模塊有以下方法:
webFrame.
-
factor
Number類型 - 縮放因數。
改變縮放因數為指定的因數。縮放因數是縮放百分比除以100,所以300% = 3.0。
webFrame.getZoomFactor()
返回值為Number
類型 - 當前的縮放因數。
webFrame.setZoomLevel(level)
-
level
Number類型 - 縮放等級。
改變縮放等級為指定的等級。原始大小是0
,每增大或減少都表示放大20%或縮小20%,默認最大是300%,最小是50%。
webFrame.getZoomLevel()
返回值為Number
類型 - 當前縮放等級。
webFrame.setZoomLevelLimits(minimumLevel, maximumLevel)
-
minimumLevel
Number類型 -
maximumLevel
Number類型
不贊成使用:調用setVisualZoomLevelLimits
代替設置可見縮放等級界限。這個方法將在Electron2.0中被移除。
webFrame.setVisualZoomLevelLimits(minimumLevel, maximumLevel)
-
minimumLevel
Number類型 -
maximumLevel
Number類型
設置最大和最小的縮放等級。
webFrame.setLayoutZoomLevelLimits(minimumLevel, maximumLevel)
-
minimumLevel
Number類型 -
maximumLevel
Number類型
設置最大和最小的布局基礎(即非視覺上的)縮放等級。
webFrame.setSpellCheckProvider(language, autoCorrectWord, provider)
-
language
String類型 -
autoCorrectWord
Boolean類型 -
provider
Object類型-
spellCheck
Function類型 - 返回值為Boolean
類型-
text
String類型
-
-
設置一個在輸入區和文本區檢查拼寫的供應商。
provider
必須提供一個有spellCheck
方法的對象,這個方法將返回單詞是否拼寫正確。
一個使用node-spellchecker作為供應商的例子:
const {webFrame} = require('electron')
webFrame.setSpellCheckProvider('en-US', true, {
spellCheck (text) {
return !(require('spellchecker').isMisspelled(text))
}
})
webFrame.registerURLSchemeAsSecure(scheme)
-
scheme
String類型
注冊一個scheme
作為secure scheme.
Secure schemes不會觸發混合內容警告。例如,https
和data
是secure schemes,因為他們不會被網絡攻擊活動破壞。
webFrame.registerURLSchemeAsBypassingCSP(scheme)
-
scheme
String類型
將會從這個scheme
中加載資源,而不管當前頁面的內容安全策略。
webFrame.registerURLSchemeAsPrivileged(scheme[, options])
-
scheme
String類型 -
options
Object類型(可選參數)-
secure
Boolean類型(可選參數) - 默認為true
。 -
bypassCSP
Boolean類型(可選參數) - 默認為true
。 -
allowServiceWorkers
Boolean類型(可選參數) - 默認為true
。 -
supportFetchAPI
Boolean類型(可選參數) - 默認為true
。 -
corsEnabled
Boolean類型(可選參數) - 默認為true
。
-
注冊scheme
為安全的,使資源繞過內容安全策略,允許注冊ServiceWorker并支持獲取接口。
使用false
指定一個選項來從注冊中忽略它。一個注冊一個沒有繞過內容安全策略的專有scheme的例子:
const {webFrame} = require('electron')
webFrame.registerURLSchemeAsPrivileged('foo', { bypassCSP: false })
webFrame.insertText(text)
-
text
String類型
插入文本到焦點元素。
webFrame.executeJavaScript(code[, userGesture, callback])
-
code
String類型 -
userGesture
Boolean (optional) - 默認是false
-
callback
Function (optional) - 腳本執行后調用。-
result
Any
-
在頁面中執行代碼。
在瀏覽器窗口中,一些HTML接口,像requestFullScreen
,只可以被用戶手勢觸發。設置userGesture
為true
將解除這個限制。
webFrame.getResourceUsage()
返回值為Object
:
-
images
MemoryUsageDetails類型 -
cssStyleSheets
MemoryUsageDetails類型 -
xslStyleSheets
MemoryUsageDetails類型 -
fonts
MemoryUsageDetails類型 -
other
MemoryUsageDetails類型
返回一個描述Blink內部緩存的使用信息的對象。
const {webFrame} = require('electron')
console.log(webFrame.getResourceUsage())
這將生成:
{
images: {
count: 22,
size: 2549,
liveSize: 2542
},
cssStyleSheets: { /* same with "images" */ },
xslStyleSheets: { /* same with "images" */ },
fonts: { /* same with "images" */ },
other: { /* same with "images" */ }
}
webFrame.clearCache()
釋放不再被使用的內存(例如以前導航過的圖片)。
請注意,盲目的調用這個方法可能會造成Electron運行變得緩慢,直到再次填滿這些空的內存,你只需要在你的應用發生一個事件使得你認為你的頁面實際上使用更少的內存的時候(即你從一個龐大的頁面跳轉到大部分內容都為空的頁面,并且打算一直保持在這個頁面不動)調用這個方法。