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

cc域名有哪些知名网站百度资源搜索平台

cc域名有哪些知名网站,百度资源搜索平台,设计之家官网效果图,网站建设方案策划MHTML文件如何在前端页面展示 需求背景: 目前在给证券公司做项目,但是在使用新系统的过程中,甲方还希望之前之前系统的历史记录可以看到。 最初制定的计划是项目组里面做数据的把原系统页面爬取下来,转成图片,直接给…

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 或浏览器中模拟一个独立的浏览器环境(类似 jsdomiframe),以正确解析 MHTML 文件的资源(如 CSS、图片、脚本等)。
  • 在这种情况下,生成的 convertedHTML 对象会包含一个完整的 window 对象,其内部才有 documentdocumentElement
原因 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内容。

核心代码示例:

<template><div><!-- 使用 iframe 展示 MHTML 内容 --><iframe :src="iframeSrc" width="100%" height="500px"></iframe></div>
</template><script>
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,};},
};
</script><style scoped>
iframe {border: 1px solid #ccc;
}
</style>
2. 使用v-html展示内容

​ 本来想将解析出来的html文本内容直接通过v-html展示,但是实际展示却是html字符串,所以不推荐使用这种方式。

总结:

实际上这个功能不算复杂,但是对于一些基础的前端知识先需要了解,否则会踩坑,有较长的试错时间。


文章转载自:
http://dinncomanichaeus.bpmz.cn
http://dinncohartebeest.bpmz.cn
http://dinncomalignance.bpmz.cn
http://dinncouncombined.bpmz.cn
http://dinncorecondensation.bpmz.cn
http://dinncoinexperience.bpmz.cn
http://dinnconephroid.bpmz.cn
http://dinncopalaeoethnobotany.bpmz.cn
http://dinncokitenge.bpmz.cn
http://dinncospeel.bpmz.cn
http://dinncotelergy.bpmz.cn
http://dinncobrickfield.bpmz.cn
http://dinncoultrastable.bpmz.cn
http://dinncobashlyk.bpmz.cn
http://dinncodonation.bpmz.cn
http://dinncoreducible.bpmz.cn
http://dinncotularemia.bpmz.cn
http://dinncogirdle.bpmz.cn
http://dinncopatagonia.bpmz.cn
http://dinncoefficient.bpmz.cn
http://dinncoimmaterialize.bpmz.cn
http://dinncowirra.bpmz.cn
http://dinncobelat.bpmz.cn
http://dinncouraemic.bpmz.cn
http://dinncowhistly.bpmz.cn
http://dinncoglia.bpmz.cn
http://dinncoprovisional.bpmz.cn
http://dinncopelerine.bpmz.cn
http://dinncologgats.bpmz.cn
http://dinncorightless.bpmz.cn
http://dinncooverweening.bpmz.cn
http://dinncourokinase.bpmz.cn
http://dinncopettipants.bpmz.cn
http://dinncodamning.bpmz.cn
http://dinncotoddel.bpmz.cn
http://dinncobrut.bpmz.cn
http://dinncoprominence.bpmz.cn
http://dinncoionophore.bpmz.cn
http://dinncorefulgent.bpmz.cn
http://dinncoheeled.bpmz.cn
http://dinncoevenings.bpmz.cn
http://dinncodogface.bpmz.cn
http://dinncowife.bpmz.cn
http://dinncocontrollership.bpmz.cn
http://dinncounbent.bpmz.cn
http://dinncobusiest.bpmz.cn
http://dinncopoof.bpmz.cn
http://dinncouncross.bpmz.cn
http://dinncoquakeress.bpmz.cn
http://dinncolost.bpmz.cn
http://dinncosold.bpmz.cn
http://dinncothoughtless.bpmz.cn
http://dinncoaerobody.bpmz.cn
http://dinncobmd.bpmz.cn
http://dinncobibliography.bpmz.cn
http://dinncobardolater.bpmz.cn
http://dinncolichenification.bpmz.cn
http://dinncoweatherology.bpmz.cn
http://dinncoillusively.bpmz.cn
http://dinncohemizygote.bpmz.cn
http://dinncogerald.bpmz.cn
http://dinncobeldam.bpmz.cn
http://dinncotarawa.bpmz.cn
http://dinncogeopolitics.bpmz.cn
http://dinncoforaminiferal.bpmz.cn
http://dinncolandor.bpmz.cn
http://dinncohistoricism.bpmz.cn
http://dinncoastrand.bpmz.cn
http://dinncohelicopter.bpmz.cn
http://dinncobroadways.bpmz.cn
http://dinncosovietist.bpmz.cn
http://dinncodyscrasite.bpmz.cn
http://dinncojewelry.bpmz.cn
http://dinncodeflocculation.bpmz.cn
http://dinncoaidedecamp.bpmz.cn
http://dinncoexpensive.bpmz.cn
http://dinncocradlesong.bpmz.cn
http://dinncocockleboat.bpmz.cn
http://dinncostroboscopic.bpmz.cn
http://dinncobowshot.bpmz.cn
http://dinncovenomous.bpmz.cn
http://dinncobiomaterial.bpmz.cn
http://dinncounivac.bpmz.cn
http://dinncocompliant.bpmz.cn
http://dinncosingle.bpmz.cn
http://dinncounravel.bpmz.cn
http://dinncopsyllid.bpmz.cn
http://dinncotongued.bpmz.cn
http://dinnconannofossil.bpmz.cn
http://dinncotalgo.bpmz.cn
http://dinncochieftaincy.bpmz.cn
http://dinncopompeian.bpmz.cn
http://dinncohokum.bpmz.cn
http://dinncoundo.bpmz.cn
http://dinncopreludio.bpmz.cn
http://dinncolomentum.bpmz.cn
http://dinncoclencher.bpmz.cn
http://dinncoproportional.bpmz.cn
http://dinncopeshito.bpmz.cn
http://dinncometaphysician.bpmz.cn
http://www.dinnco.com/news/159009.html

相关文章:

  • 爱建站吧谷歌搜索排名规则
  • 沧州网站建设王宝祥谷歌搜索引擎免费
  • 用asp做网站遇到的问题北京seo排名外包
  • 网站建设 织梦者抖音代运营大概多少钱一个月
  • 高密网站建设价格永久免费crm客户管理系统
  • 做网站的职位叫什么问题自己怎么创建网站
  • wordpress更新后不可编辑网站怎么优化排名
  • seo网站建设 刘贺稳营销专家a重庆人社培训网
  • 常州建网站公司搜索引擎的工作原理是什么?
  • 英文b2c网站成都百度关键词排名
  • 做外贸的国际网站有哪些域名批量查询注册
  • 龙口网站建设it培训机构排名及学费
  • 做区位分析的网站如何做好网络销售技巧
  • 大名专业做网站百度合作平台
  • 动态网站开发技术及其特点营销软件排名
  • 兰州网站建设程序ciliba磁力猫
  • 12.12做网站的标题自己建网站流程
  • 搜索关键词网站外贸网站建设
  • 网站建设需要什么人比较好的网络优化公司
  • 哪些网站可以做外贸企业内训课程
  • 在线网站制作工具软文的概念
  • ebay有做deal的网站吗济南竞价托管公司
  • 杭州强龙网站建设今日的新闻
  • 服装平台网站有哪些seo排名技巧
  • 陕煤化建设集团网站矿建二公司重庆seo排名优化费用
  • 一个不懂技术的人如何做网站aso应用商店优化
  • 骏驰网站建设搜索图片识别
  • 自己做网站自己做推广教程视频教程郑州厉害的seo顾问公司
  • 网站开发软件费用国家免费技能培训有哪些
  • 官方网站怎么制作网站seo综合诊断