当前位置: 首页 > wzjs >正文

个人网站设计与实现源码濮阳seo网站建设

个人网站设计与实现源码,濮阳seo网站建设,做网站怎么回本,WordPress文章固定连接htmlvue内嵌网页可以使用iframe实现内嵌网页,但是只能通过postMessage间接通信,在electron环境下,vue可以直接使用webview来内嵌网页,支持 executeJavaScript、postMessage、send 等丰富的通信机制。 使用 webview的优势 性能更佳&…

vue内嵌网页可以使用iframe实现内嵌网页,但是只能通过postMessage间接通信,在electron环境下,vue可以直接使用webview来内嵌网页,支持 executeJavaScript、postMessage、send 等丰富的通信机制。
使用 webview的优势
性能更佳:独立进程,适合加载复杂网页或 Web App。
更强的 API 控制:支持 executeJavaScript、postMessage、send 等丰富的通信机制。
更强的安全性:启用 contextIsolation、sandbox 等参数可大幅降低攻击面。
使用 iframe的优势
轻量快捷:无需额外配置,简单加载外部网页或静态内容。
兼容性更好:更接近标准 Web 技术,适用于更广泛的项目场景。

在这里插入图片描述
注:官方更推荐WebContentsView,webview已经不推荐,但还是能够使用

前端代码 (Vue 3 组件)

<template><div class="content-layout" >     <webview ref="webviewRef" :src="url" style="width: 100%; height: 100%;"@dom-ready="onDomReady"></webview></div>
</template><script lang="ts" setup >import { ref, onMounted } from 'vue';const url = ref('https://www.baidu.com');const webviewRef = ref<Electron.WebviewTag | null>(null);onMounted(() => {if (webviewRef.value) {webviewRef.value.addEventListener('dom-ready', () => {webviewRef.value!.executeJavaScript(`console.log("Injected JavaScript: Hello from Electron!");document.body.style.backgroundColor = 'lightblue';`);});}});function onDomReady () {console.log('Webview DOM Ready!');};</script><style scoped>.content-layout {width: 100%;background-color: var(--color-background-content);}
</style>

主进程 (main.js)
在 Electron 主进程中,需要配置 webview 的权限。

const { app, BrowserWindow } = require('electron');let mainWindow;app.whenReady().then(() => {mainWindow = new BrowserWindow({width: 1000,height: 800,webPreferences: {preload: `${__dirname}/preload.js`,  // 为 webview 提供安全预加载脚本webviewTag: true,                   // 启用 webview 标签contextIsolation: true,             // 提高安全性enableRemoteModule: false           // 禁止远程模块,减少安全风险}});// HMR for renderer base on electron-vite cli.// Load the remote URL for development or the local html file for production.if (is.dev && process.env['ELECTRON_RENDERER_URL']) {mainWindow.loadURL(process.env['ELECTRON_RENDERER_URL'])} else {mainWindow.loadFile(join(__dirname, '../renderer/index.html'))}});

预加载脚本 (preload.js)
预加载脚本用于在 webview 和 主进程 之间安全地通信

const { contextBridge, ipcRenderer } = require('electron');// 暴露安全 API 给 Webview
contextBridge.exposeInMainWorld('electronAPI', {sendMessage: (message) => ipcRenderer.send('message', message)
});// 监听来自主进程的消息
ipcRenderer.on('reply', (event, response) => {console.log('Received from main process:', response);
});

在这里插入图片描述

http://www.dtcms.com/wzjs/569811.html

相关文章:

  • 王璞网站开发实战答案朔州网络推广
  • 可以自己做logo的网站泉州网站关键词推广费用
  • 钓鱼网站怎么搭建app扁平化设计网站
  • 长春建设集团招聘信息网站新手怎么做跨境电商
  • 重庆建一个网站大概要多少钱网站描文本
  • 建网站哪家划算网站建设众包平台
  • 长沙环路建设开发有限公司网站北京微网站开发
  • 网站维护与推广chatgpt app
  • 电商网站开发重难点绿色为主色的网站
  • 江西省兴赣建设监理咨询有限公司网站郑州网站建设定制开发
  • 贵阳建设工程信息网站百度收录网站
  • 网站建设百度云东莞产品展厅设计公司
  • 做网站公司赚钱么群晖系统可以做网站吗
  • d0906网站建设与管理做网站卖机械
  • 黑龙江 网站建设网页制作基础是人工评分吗
  • 上海网站建设高端定制网络服务公司湖北省建设工程信息网
  • 学网站建设要多久营销培训体系
  • app网站建设源码国外做连接器平台网站
  • 创建网站好的平台苏州建网站的公
  • 博天网站建设网络郑州网站专业建设qq
  • 上海外贸网站google建站钢结构工程
  • 网站的风格与布局的设计方案wordpress代码分割
  • 网站中下滑菜单怎么做网络项目一天赚500
  • 网站打不开建设中哪的问题wordpress自定义文章分类
  • 网站文章列表和图片列表排版切换代码大连头条热点新闻
  • 开福区城乡建设局网站深圳做网站600
  • 大恒建设集团有限公司网站电商网站建设公司怎么样
  • 信阳网站建设公司汉狮排名邢台做移动网站费用
  • 汕头网站建设公司有哪些效果图制作步骤
  • sketch做网站线框图企业网站设计网络公司