美文网首页我爱编程程序员
React-Electron-Webview-获取内容

React-Electron-Webview-获取内容

作者: zhyuzh3d | 来源:发表于2018-06-29 08:59 被阅读3次

如何在其他元素内获取webview载入的guest内容?

问题点在于:

  • 在主进程中如何获得渲染进程中的内容
  • webview是客体内容,如何跨越到其他元素的渲染进程内
  • 获得webview的webContent似乎并没有什么用,只和事件有关,和内容无关
  • 即使获得了内容,但不一定能正常转为Dom进行query查询

解决方案:

  1. 在创建webview的时候添加dom-ready监听,完成内容加载后触发
  2. 使用dom的executeJavaScript('code',callback(result))方法提取出webview的内部文字
  3. 利用createDocumentFragment方法创造片段,再createElement创建html元素,把元素放入到片段中,使其可以query查询

实际代码

componentDidMount() {
        let that = this
        //将webview内容同步到编辑窗口
        const browser = document.querySelector('webview')
        browser.addEventListener('dom-ready', (e) => {
            browser.executeJavaScript(`document.documentElement.innerHTML`, function (str) {
                that.setState({
                    docStr: str
                })

                let doc = document.createDocumentFragment()
                let el = document.createElement('html')
                el.innerHTML = str
                doc.appendChild(el)
                var text = doc.querySelector('head').innerHTML
                console.log('>>>head', $(doc).find('head title').html())
                console.log('>>>body', $(doc).find('body').html())
            })
        })
    }

注意点:
webview.getWebContent方法拿到webContent,但根本没卵用;
直接$(str)会导致无法查询head里面的元素,拿不到title等信息;


致力于让一切变得简单

如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~


END

相关文章

  • React-Electron-Webview-获取内容

    如何在其他元素内获取webview载入的guest内容? 问题点在于: 在主进程中如何获得渲染进程中的内容 web...

  • 【关于内容获取】

    友:孩子的四字成语很老火,需要买本相关的书么? 团:因为他阅读的时候只注重内容了,读得很快,跳着跳着读,你可以陪着...

  • 获取网页内容

  • 获取表单内容

    1、jquery获取字符串形式 2、jquery获取数组形式 3、each()注意:each可以使用分别获取不用类...

  • jQuery之可编辑div--contenteditable

    一、获取div contenteditable的内容 1、获取纯文本内容 2、获取html内容 二、div con...

  • nodeJS请求

    获取get请求内容 获取post请求内容 实例:

  • JavaScript-DOM

    概述获取标签、获取属性、获取内容样式事件 概述 获取标签(1,2,3,4)获取属性(5)获取内容(6) 样式 事件

  • 2018-11-135

    innerHTML 获取标签内部的所有内容,可以获取出标签里面的标签 innerText获取标签里面的内容,不获取...

  • 笔记14

    innerHTML 获取标签内部的所有内容,可以获取出标签里面的标签 innerText获取标签里面的内容,不获取...

  • jQuery设置和获取元素内部HTML内容、text文本

    获取内容 设置内容

网友评论

    本文标题:React-Electron-Webview-获取内容

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