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

网站建设费用 知乎江西个人网站备案

网站建设费用 知乎,江西个人网站备案,《网站建设与维护》讲义,如何建设网站 企业MHTML文件如何在前端页面展示 需求背景#xff1a; 目前在给证券公司做项目#xff0c;但是在使用新系统的过程中#xff0c;甲方还希望之前之前系统的历史记录可以看到。 最初制定的计划是项目组里面做数据的把原系统页面爬取下来#xff0c;转成图片#xff0c;直接给…MHTML文件如何在前端页面展示 需求背景 目前在给证券公司做项目但是在使用新系统的过程中甲方还希望之前之前系统的历史记录可以看到。 最初制定的计划是项目组里面做数据的把原系统页面爬取下来转成图片直接给到前端即可。但是产品建议说把整个页面的html爬下来再展示更好但是在爬取html的过程中出现了若干问题总之最后做数据的把之前的历史记录爬成MHTML格式的给了后端我在请求的时候后端把MHTML格式文件内容以字符串格式全部给到前端。 技术背景 1. MHTML和HTML 特性HTMLMHTML文件格式纯文本文件扩展名为.html或.htm单一文件扩展名为.mht或.mhtml资源处理外部资源通过链接引用所有资源如图片、CSS、JS嵌入文件中用途用于创建和展示网页用于保存完整网页适合离线浏览兼容性所有浏览器均支持部分浏览器支持如IE、Edge文件大小较小因资源未嵌入较大因包含所有资源离线支持需要外部资源在线访问支持离线浏览资源已嵌入分享与保存需附带外部资源单一文件便于分享和保存 总结 HTML适合在线浏览依赖外部资源。MHTML适合保存完整网页便于离线使用和分享。 2. mhtml2html ​ 需要了解这个库的使用方式其官网地址如下mhtml2html - npm 3. 为什么需要 .window.document 原因 1模拟浏览器环境 mhtml2html 的设计可能是为了在 Node.js 或浏览器中模拟一个独立的浏览器环境类似 jsdom 或 iframe以正确解析 MHTML 文件的资源如 CSS、图片、脚本等。在这种情况下生成的 convertedHTML 对象会包含一个完整的 window 对象其内部才有 document 和 documentElement。 原因 2隔离文档作用域 MHTML 文件可能包含独立的 HTML、CSS 和 JavaScript 代码需要在一个隔离的环境中运行避免污染当前页面的全局作用域。通过将文档封装在 window 对象中mhtml2html 实现了这种隔离。 4. innerHTML和outerHTML 特性innerHTMLouterHTML定义获取或设置元素内部的 HTML 内容不包含该元素本身获取或设置整个元素的 HTML包括该元素自身及其所有子元素返回内容返回元素内部的 HTML 字符串返回包含当前元素标签及其内部 HTML 的完整字符串修改行为赋值后仅会替换元素内部的内容不会改变元素自身赋值后会替换整个元素即当前元素及其所有子元素都会被更新或移除常见用途用于更新或操作元素内部的内容例如动态加载文本或子节点用于替换、删除整个元素或将元素及其内容导出为 HTML 字符串注意事项修改后元素本身的标签和属性保持不变仅子节点内容发生变化修改后原来的 DOM 引用可能失效因为整个元素可能已经被新元素替换 解决思路 1. 使用iframe展示内容 1. 首先你可能需要一个库来解析MHTML文件。可以使用mhtml2html库来将MHTML转换为HTML。 2. **Blob**: 用于创建一个包含HTML内容的Blob对象。 3. **URL.createObjectURL**: 生成一个临时的URL用于在iframe中加载HTML内容。核心代码示例: templatediv!-- 使用 iframe 展示 MHTML 内容 --iframe :srciframeSrc width100% height500px/iframe/div /templatescript import { ref, onMounted } from vue; import mhtml2html from mhtml2html;export default {setup() {const iframeSrc ref(); // 用于存储 iframe 的 src// 加载并解析 MHTML 文件const loadMHTML async () {try {// 假设你有一个 MHTML 文件的 URLconst mhtmlUrl /path/to/your/file.mhtml;// 获取 MHTML 文件内容const response await fetch(mhtmlUrl);const mhtmlContent await response.text();// parse解析将 MHTML 字符串解析为对象const parsedMHTML mhtml2html.parse(mhtmlContent);// convert, 将 解析出的 MHTML 对象转译成含有资源的 HTMLconst convertedHTML mhtml2html.convert(parsedMHTML);if (!convertedHTML?.window.document?.documentElement) {throw new Error(HTML转换失败未找到可用的 documentElement);}// 注意mhtml2html.convert 返回的是一个模拟的浏览器环境其文档对象 (document) 必须通过 .window 访问。这种设计是为了隔离 MHTML 文件的内容确保资源解析和样式作用域的正确性。直接使用 convertedHTML.document 会失败因为 document 并未直接暴露在返回值顶层。const htmlContent convertedHTML.window.document.documentElement.outerHTML;loadingText.value 解析成功开始展示;// 创建 Blob URLconst blob new Blob([htmlContent], { type: text/html });iframeSrc.value URL.createObjectURL(blob);} catch (error) {console.error(Failed to load MHTML file:, error);}};// 在组件挂载时加载 MHTML 文件onMounted(() {loadMHTML();});// 在组件销毁时清理 Blob URLonBeforeUnmount(() {if (iframeSrc.value) {URL.revokeObjectURL(iframeSrc.value);}});return {iframeSrc,};}, }; /scriptstyle scoped iframe {border: 1px solid #ccc; } /style 2. 使用v-html展示内容 ​ 本来想将解析出来的html文本内容直接通过v-html展示但是实际展示却是html字符串所以不推荐使用这种方式。 总结: 实际上这个功能不算复杂但是对于一些基础的前端知识先需要了解否则会踩坑有较长的试错时间。
http://www.hkea.cn/news/14357602/

相关文章:

  • 制作网站需要多少费用快站是个什么平台
  • 企业做网站和宣传册的作用杭州高端网站设计
  • 个人是否可以申请持有网站小程序开发平台花多少钱
  • 网站制作策划书找人做网站注意
  • 网站建设的技术保证怎么写wordpress安装教程 linux
  • 铜山区建设局局网站周保春自媒体seo优化
  • 陇南做网站腾讯云cdn配置wordpress
  • 健康私人定制网站怎么做上海兼职做网站
  • 网站编辑器无法显示网站集群建设的意义
  • 颍上做网站免费自助网站建设
  • 做动图的网站知乎网页设计怎么样
  • 忻州市建设厅网站首页海外打开网站慢
  • 网站建设方案书范文wordpress连接mysql8
  • 佛山专业建站公司装企网站建设
  • 有什么做照片书的网站怎么样建设一个网站
  • 建设网站后期需要哪些校园二手市场网站开发的意义
  • 许昌那有做网站广东省城乡建设厅网站首页
  • 北京网站制作合肥如何看网站空间问题
  • 上海网站建设 美橙网络宣传渠道有哪些
  • 网站查询备案服务商学it一年的学费大概是多少
  • 南宁做网站哪家公司好wordpress相册短代码
  • 为什么建设营销型网站学习html5的网站
  • 甘肃省建设厅官网站深圳建网建网站
  • 凡客网站设计网站二次备案
  • 设计友好的网站服务一流的做网站
  • 传媒网站模板seo网站推广目的
  • 网站建设优化推广排名免费域名创建入口在哪
  • uiapp博客 个人网站天津 网站设计制作公司
  • 天猫入驻网站建设深圳创业补贴政策2021申请流程
  • 徐州html5响应式网站建设哔哩哔哩免费网站观看