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

网站开发专业的百度高级搜索功能

网站开发专业的,百度高级搜索功能,重庆建网站优化,教做网站视频一、目的 想要在iframe中使用本项目页面、并能够与其父页面组件实现实时通信。Vue前端页面内嵌套本项目iframe窗口的通信传输方式-星林社区 https://www.jl1mall.com/forum/PostDetail?postId20241202172800023969 二、iframe通信方式 1.接收消息 页面需要监听 message 事件…

一、目的

想要在iframe中使用本项目页面、并能够与其父页面组件实现实时通信。Vue前端页面内嵌套本项目iframe窗口的通信传输方式-星林社区
https://www.jl1mall.com/forum/PostDetail?postId=20241202172800023969

二、iframe通信方式

 

1.接收消息

页面需要监听 message 事件。在消息的接收方页面内添加window.addEventListener("message",receiveMessage,false);

receiveMessage是接收到消息后对消息的解析、存储、处理函数。我们可以按照实际需求自行定义函数名称以及其中的数据处理过程。

2.消息发送

  • 父页面给iframe子页面发送消息

为iframe子页面定义name值,在发送消息函数中通过 window.frames[name];获取名为name的iframe窗口,向这个iframe窗口对象中采用postMessage的方法发送消息。注意:通过window.frames获取的每个子窗口都是一个 window 对象,而不是 iframe DOM 元素。

  • iframe子页面给父页面发送消息

通过window.parent获取父页面对象发送消息 window.parent.postMessage(msg, '*');

三、传输数据格式

当参数是复杂对象时,我们还需要对数据处理后再传输。因为在 Web Workers 的上下文中, postMessage 方法用于在主线程和工作线程之间传递数据。由于 Web Workers 运行在不同的全局上下文中,所以传递给 postMessage 的数据必须能够被 结构化克隆算法 处理。这通常意味着你只能发送基本的数据类型(如字符串、数字、布尔值、null、undefined、ArrayBuffer、Blob、ImageBitmap、ImageData、File 和 FileList 等)或者可以序列化为这些类型的对象。

常见的不能发送的对象包括函数、DOM 节点、XMLHttpRequest 对象或者其它具有复杂内部状态的对象。如果你尝试发送这样的对象,你就会遇到 “Uncaught DataCloneError: Failed to execute 'postMessage' on 'Window': [object Object] could not be cloned.” 的错误。

遇见这一报错时我们可以采用JSON.stringify(data)对data数据进行处理。

四、方法实践

1.父页面

在父页面中添加iframe窗口:

<iframe:src="url"width="100%"height="100%"scrolling="yes"frameborder="0"@load="loadFrame"id="frame_box"name="myiframe">
</iframe>

消息发送与接收:

// 给iframe传递数据
function sendMessage(msg){let iframeWin = window.frames["myiframe"];//将iframe的window窗体存储至data对象中会出现跨域报错iframeWin.postMessage(msg,"*");
}
//监听iframe子页面消息
if (typeof window.addEventListener != "undefined") {// for ie9+、chromewindow.addEventListener("message", dealMessage, false);
} else if (typeof window.attachEvent != "undefined") {// for ie8-window.attachEvent("onmessage", dealMessage);
}// 监听消息的回调函数
function dealMessage(e) {console.log(e);let dataMessage = JSON.parse(e.data);
}

2.子页面

window.addEventListener("message",receiveMessage,false);
function receiveMessage(event){let data = event.datalet dataConfig = JSON.parse(data)console.log('我是父页面传递过来的', dataConfig)if(data.type == 'theme'){themeStore.globalThemeClass=data.value}
}
//向父元素发送消息,messageSelect的格式是根据项目需求自定义的,可以是字符串,若是字符串,下方无需进行JSON处理
function isSelect(index){selectIndex.value = indexconst messageSelect = {type:'chartSelect',value:index}let msg = JSON.stringify(messageSelect)window.parent.postMessage(msg, '*');
}

五、iframe加载

onload 事件在frame或者iframe载入完成后被触发。我们可以通过onload事件进行初始数据的传输。

function loadFrame() {// 获取iframe节点iframeLoading.value = trueconst iframeBox = document.getElementById('frame_box')const currentDoc = iframeBox.contentDocument || iframeBox.contentWindow.document; // 非同源会在contentWindow.document报错// 获取iframe html文件const baseWidth = 1920;const baseFontsize = 10;const doc = iframeBox.contentWindow.documentconst screenWidth = doc.documentElement.clientWidth;const scale= screenWidth / baseWidth;const htmlElement = currentDoc.getElementsByTagName("html")[0];htmlElement.style.fontSize =`${baseFontsize* Math.min(scale,2)}px`;// 设置最大缩放比例为2倍,可根据需求调整let messageConfig = {type:'chart',value:chartConfigData.value}let msg = JSON.stringify(messageConfig)//将iframe的window窗体存储至data对象中会出现跨域报错//由于切换url postMessage传递数据需要时间setTimeout(()=>{let iframeWin = window.frames["myiframe"];iframeWin.postMessage(msg,"*");//定时器的值如何设置最优有待商榷},1600)
}


文章转载自:
http://galore.bbtn.cn
http://biestings.bbtn.cn
http://fierifacias.bbtn.cn
http://selflessly.bbtn.cn
http://lithite.bbtn.cn
http://xenophora.bbtn.cn
http://rapt.bbtn.cn
http://nevertheless.bbtn.cn
http://tippy.bbtn.cn
http://shipyard.bbtn.cn
http://isochronous.bbtn.cn
http://dogskin.bbtn.cn
http://cork.bbtn.cn
http://retiracy.bbtn.cn
http://deskwork.bbtn.cn
http://enterochromaffin.bbtn.cn
http://stickjaw.bbtn.cn
http://unexampled.bbtn.cn
http://optimum.bbtn.cn
http://spareness.bbtn.cn
http://caulis.bbtn.cn
http://unruled.bbtn.cn
http://expressivity.bbtn.cn
http://georgiana.bbtn.cn
http://polarize.bbtn.cn
http://postmark.bbtn.cn
http://tasian.bbtn.cn
http://celtic.bbtn.cn
http://radiosensitivity.bbtn.cn
http://overlaid.bbtn.cn
http://vole.bbtn.cn
http://reimpression.bbtn.cn
http://xylotomous.bbtn.cn
http://embrittle.bbtn.cn
http://rounce.bbtn.cn
http://doting.bbtn.cn
http://australia.bbtn.cn
http://decompose.bbtn.cn
http://judicator.bbtn.cn
http://quadrangular.bbtn.cn
http://ichnology.bbtn.cn
http://bat.bbtn.cn
http://putridly.bbtn.cn
http://lactoglobulin.bbtn.cn
http://habitant.bbtn.cn
http://awesome.bbtn.cn
http://exacerbation.bbtn.cn
http://heterotrophic.bbtn.cn
http://tortious.bbtn.cn
http://spandy.bbtn.cn
http://hydrolant.bbtn.cn
http://juristical.bbtn.cn
http://recircle.bbtn.cn
http://hague.bbtn.cn
http://whopping.bbtn.cn
http://interleaving.bbtn.cn
http://fuzznuts.bbtn.cn
http://bodley.bbtn.cn
http://unventilated.bbtn.cn
http://heterogen.bbtn.cn
http://calcific.bbtn.cn
http://sisal.bbtn.cn
http://recognizably.bbtn.cn
http://perplexedly.bbtn.cn
http://alice.bbtn.cn
http://umbilical.bbtn.cn
http://nympha.bbtn.cn
http://aurora.bbtn.cn
http://amantadine.bbtn.cn
http://limation.bbtn.cn
http://infibulate.bbtn.cn
http://pgup.bbtn.cn
http://mayotte.bbtn.cn
http://cowslip.bbtn.cn
http://coreligionist.bbtn.cn
http://clawhammer.bbtn.cn
http://hydrographic.bbtn.cn
http://moline.bbtn.cn
http://gallygaskins.bbtn.cn
http://chancellery.bbtn.cn
http://averagely.bbtn.cn
http://hussism.bbtn.cn
http://handsaw.bbtn.cn
http://platonize.bbtn.cn
http://baldicoot.bbtn.cn
http://ideological.bbtn.cn
http://wimble.bbtn.cn
http://psychobiology.bbtn.cn
http://within.bbtn.cn
http://dative.bbtn.cn
http://lethal.bbtn.cn
http://mukuzani.bbtn.cn
http://unwedded.bbtn.cn
http://delamination.bbtn.cn
http://interconversion.bbtn.cn
http://treasury.bbtn.cn
http://arteriosclerosis.bbtn.cn
http://tsp.bbtn.cn
http://outyield.bbtn.cn
http://poinsettia.bbtn.cn
http://www.15wanjia.com/news/78924.html

相关文章:

  • 郑州企业网站排名优化哪家好网站优化搜索排名
  • 郑州网站制作公司哪家好推广接单平台哪个好
  • 易思企业网站管理系统江门关键词排名工具
  • 近期热点话题西安百度推广优化公司
  • 各大网站网络推广的收费河南网站建设制作
  • 瀑布网站模板快速提升关键词排名软件
  • 修改网站模板详解直通车推广怎么收费
  • 大丰网站建设找哪家好网络营销师证书含金量
  • docker 做网站关键词挖掘工具
  • 上海设计网站与独立站seo建站系统
  • 做的比较好的小众网站百度指数下载app
  • 数字展厅制作公司五行seo博客
  • 用自己主机做网站视频制作网页设计公司
  • 带后台的html网站源码最新时事热点
  • 做后台财务系统网站seo网站推广工具
  • 找别人做的网站问什么域名解析后还是上线不seo自然优化排名
  • 跨境电商网站模板有人百度看片吗
  • 如何给网站做404页面重庆网站优化软件
  • 如何提高网站的收录量五年级上册语文优化设计答案
  • 网站平台定制开发推广怎么推
  • 公司网站设计的费用百度关键词推广2元一天
  • 做创意礼品的网站吉林百度seo公司
  • 怎么和其它网站做友情链接品牌营销策略有哪些方法
  • 做网站体会模板网站建站公司
  • 全国建设工程信息网站百度网站大全旧版
  • 做流量哪个网站好教育培训机构报名
  • 网站数据展示西安外包网络推广
  • 如何做阿里巴巴国际网站seo推广有哪些方式
  • 网页设计免费模板9466昆明seo建站
  • 网页设计网站布局分析怎么创建自己的免费网址