electron的webView通信
如何在Electron中使用webView打开网页并获取DOM元素
Electron是一个基于Chromium和Node.js的开源框架,用于构建跨平台的桌面应用程序。其中,Electron的webView是用来嵌入网页的组件。在本文中,我们将介绍如何使用Electron的webView打开网页并获取DOM元素的值。
步骤1:创建Electron应用
首先,我们需要创建一个Electron应用。在命令行中,使用以下命令创建一个新的Electron应用:
mkdir my-electron-app
cd my-electron-app
npm init -y
npm i --save electron
在创建完毕后,您可以在package.json文件中看到Electron的依赖项。
步骤2:创建并配置webView
在Electron中,webView是一个嵌入式的浏览器窗口,用于在Electron应用程序中显示网页。我们可以在Electron的主进程中创建webView,并将其嵌入到应用程序中。在我们的示例中,我们将创建一个webView实例并将其添加到Electron窗口中。在您的Electron应用程序中,打开main.js文件,然后添加以下代码:
const { app, BrowserWindow } = require('electron')
let win
function createWindow () {
win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
webviewTag: true
}
})
win.loadFile('index.html')
const webview = document.createElement('webview')
webview.src = '<https://www.google.com>'
webview.addEventListener('dom-ready', () => {
webview.executeJavaScript(`alert(document.title)`)
})
win.webContents.on('did-finish-load', () => {
win.webContents.executeJavaScript(`
const webview = document.querySelector('webview')
webview.addEventListener('dom-ready', () => {
webview.executeJavaScript(\`
const body = document.querySelector('body')
const p = document.createElement('p')
p.innerText = 'Hello from Electron'
body.appendChild(p)
\`)
})
`)
})
win.on('closed', () => {
win = null
})
}
app.on('ready', createWindow)
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (win === null) {
createWindow()
}
})
在上面的代码中,我们创建了一个新的BrowserWindow实例,并将其加载到我们的Electron应用程序中。然后,我们使用document.createElement()方法创建了一个新的webView元素,并将其嵌入到我们的Electron窗口中。接下来,我们监听了webView的’dom–ready’事件,该事件在webView加载完毕后会触发。在事件处理程序中,我们使用webView.executeJavaScript()方法获取了网页的标题。
步骤3:获取DOM元素的值
要获取DOM元素的值,我们需要在webView的’dom–ready’事件处理程序中编写代码。在我们的示例中,我们将使用querySelector()方法选择要获取值的元素,然后使用innerText属性获取其文本值。在您的Electron应用程序中,打开main.js文件,然后将以下代码添加到webView的’dom–ready’事件处理程序中:
const webview = document.querySelector('webview')
webview.addEventListener('dom-ready', () => {
webview.executeJavaScript(`
const element = document.querySelector('h1')
alert(element.innerText)
`)
})
在上面的代码中,我们使用querySelector()方法选择了网页中的h1元素,并使用innerText属性获取了其文本值。接下来,我们使用alert()方法将文本值弹出。
步骤4:运行应用程序并测试
在完成了上述步骤之后,我们现在可以运行Electron应用程序并测试它是否能够正常工作。在命令行中,运行以下命令以启动您的Electron应用程序:
npm start
在Electron应用程序中,您应该可以看到我们嵌入的webView窗口,其中显示了Google的网页。当网页加载完毕后,应用程序应该会弹出一个包含网页标题的警告框。接下来,当您点击警告框时,应用程序应该会弹出一个包含网页标题的警告框。
结论
在本文中,我们介绍了如何使用Electron的webView打开网页并获取DOM元素的值。我们首先创建了一个Electron应用程序,然后创建了一个webView实例并将其嵌入到我们的应用程序中。接下来,我们监听了webView的’dom–ready’事件,并使用executeJavaScript()方法获取了网页的标题。最后,我们介绍了如何使用querySelector()方法选择DOM元素并使用innerText属性获取其文本值。希望这篇文章能够对您有所帮助!
原文地址:https://blog.csdn.net/qq_44984407/article/details/129179505
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_33596.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!