4. webFrame

作者: Shmily落墨 | 来源:发表于2017-03-17 17:10 被阅读68次

    原文: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不会触发混合内容警告。例如,httpsdata是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,只可以被用户手势触发。设置userGesturetrue将解除这个限制。

    webFrame.getResourceUsage()

    返回值为Object

    返回一个描述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运行变得缓慢,直到再次填满这些空的内存,你只需要在你的应用发生一个事件使得你认为你的页面实际上使用更少的内存的时候(即你从一个庞大的页面跳转到大部分内容都为空的页面,并且打算一直保持在这个页面不动)调用这个方法。

    相关文章

      网友评论

        本文标题:4. webFrame

        本文链接:https://www.haomeiwen.com/subject/ifaenttx.html