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

公司网站管理国际网站怎么做优化

公司网站管理,国际网站怎么做优化,网站主页图片尺寸,wordpress 屏蔽中文浏览器文章目录 需求分析父传子子传父 需求 一个vue项目中通过iframe嵌套另外一个vue项目,如何让这两个项目之间进行通信 分析 在Vue项目中通过iframe嵌套另外一个Vue项目时,可以通过postMessage方法实现这两个项目之间的通信。postMessage是HTML5新增加的API…

文章目录

    • 需求
    • 分析
      • 父传子
      • 子传父

需求

一个vue项目中通过iframe嵌套另外一个vue项目,如何让这两个项目之间进行通信

分析

在Vue项目中通过iframe嵌套另外一个Vue项目时,可以通过postMessage方法实现这两个项目之间的通信。postMessage是HTML5新增加的API,它允许在不同的window或iframe之间发送消息。

父传子

  • A项目中父组件中调用B项目并发送 msg
<template><iframe id="modle_iframe" ref="Iframe" :src="url" frameborder="0" />
</template>
<script>
export default {name: 'Index',data () {return {viewer: null,url: '',projectId: this.$store.state.project.projectId,structId: this.$store.state.struct.structId,token: getToken()}},mounted () {const iframe = document.getElementById('modle_iframe')const port = process.env.NODE_ENV === 'development' ? 9002 : 41003const baseUrl = `${window.location.protocol}//${window.location.hostname}:${port}/#/home`this.url = `${baseUrl}?projectId=${this.projectId}&structId=${this.structId}&token=${this.token}&sign=9`const obj = {sign: 'safeDaba',value: '9'}const msg = JSON.stringify(obj)iframe.contentWindow.postMessage(msg, '*')// this.$nextTick(() => {//     this.init()//   })},methods: {}
}
</script>
<style scoped>
#modle_iframe {width: 100%;height: 600px;
}
</style>
  • B项目中子组件中接收B项目发送的 msg
window.addEventListener('message', function (e) {e.stopPropagation();//防止异常try {let data = JSON.parse(e.data); //转化为jsonif (data.sign === 'waterAndRain') {if (data.value === '1') {}} else {}} catch (err) {}});

如果上述代码看不太明白,那么

下面是一个示例代码,演示了如何在父窗口和子窗口之间使用postMessage方法进行通信:

在父窗口中:

// 获取iframe元素
const iframe = document.querySelector('#myIframe')// 监听message事件
window.addEventListener('message', (event) => {// 判断消息来源是否为iframe的地址if (event.source === iframe.contentWindow) {// 处理接收到的消息console.log('收到来自子窗口的消息:', event.data)}
})// 发送消息给iframe
iframe.contentWindow.postMessage('Hello from parent', '*')

在子窗口中:

// 监听message事件
window.addEventListener('message', (event) => {// 判断消息来源是否为父窗口的地址if (event.source === window.parent) {// 处理接收到的消息console.log('收到来自父窗口的消息:', event.data)// 发送消息给父窗口window.parent.postMessage('Hello from child', '*')}
})

在上述代码中,我们首先获取了用于嵌套另一个Vue项目的iframe元素。然后,在父窗口中监听了message事件,当接收到来自iframe的消息时,就会将消息打印输出到控制台中。

接着,在父窗口中使用postMessage方法向iframe发送了一条消息。

在子窗口中,我们也监听了message事件,并判断消息来源是否为父窗口的地址。当接收到来自父窗口的消息时,就会将消息打印输出到控制台中,并使用postMessage方法向父窗口发送了一条消息。

需要注意的是,当使用postMessage方法发送消息时,第二个参数指定的是消息的目标窗口的origin,这里我们使用通配符*表示允许发送消息到任何域名,但在实际应用中建议设置具体的域名。

子传父

首先,在被调用者子组件中,使用postMessage方法将消息传递给父窗口:

  • 子页面
// 在被调用者子组件中
// 向父窗口发送消息
window.parent.postMessage('Hello from child', '*')

然后,在调用者父组件中,通过监听message事件接收子组件传递的消息:

mounted() {window.addEventListener('message', this.handleMessage)},methods: {handleMessage(event) {// 处理接收到的消息console.log('收到来自子组件的消息:', event.data)},}

// 在调用者父组件中
// 监听message事件
window.addEventListener('message', (event) => {// 判断消息来源是否为被调用者子组件的地址if (event.source === document.querySelector('iframe').contentWindow) {// 处理接收到的消息console.log('收到来自子组件的消息:', event.data)}
})

在上述代码中,被调用者子组件通过window.parent.postMessage方法将消息发送给父窗口。注意,这里的window.parent表示父窗口的全局对象。

在调用者父组件中,我们使用window.addEventListener方法监听message事件,并通过判断消息来源是否为被调用者子组件的地址来确定是否处理该消息。

通过这种方式,被调用者子组件可以将消息传递给调用者父组件,实现跨域通信。

需要注意的是,由于涉及到跨域通信,需要确保两个项目的域名不同,否则会受到浏览器的同源策略限制。同时,也需要确保被嵌套的项目正确设置了允许跨域访问的响应头。

http://www.yayakq.cn/news/179332/

相关文章:

  • php网站有点2018年静安区品牌网站建设
  • 大良制作网站惠州地区网站建设公司
  • 电子商务网站建设的范围是什么意思做地铁系统集成的公司网站
  • 青海海东住房和城乡建设局网站我做的静态网站怎么发布到网上
  • 酒业为什么做网站网架公司的名称
  • 怎么做58网站吊车网大兴企业网站建设公司
  • 教育网站的建设公司简介模板表格
  • 石家庄专业信息门户网站定制洪梅镇做网站
  • 网站后台账号密码忘记了wordpress 上传绕过
  • 广州物流网站建设西安网站设计费用
  • 做神马网站快速排名怎么制作一个微信小程序
  • 服饰东莞网站建设基础建设期刊在哪个网站可以查
  • 个人网站建设目的企业门户系统
  • 品牌营销策划服务谷歌seo排名公司
  • 多种专业网站建设wordpress邮箱模板
  • 郑州知名网站建设公司排名免费网站后台管理系统模板
  • 云梦网站建设给境外网站网站做代理
  • 三网合一的网站怎么做家电网站设计方案
  • 企业网站建设及运营现状分析湛江定制建站企业网站
  • wordpress网站地图企业网站如何做seo
  • 3网站建设公司wordpress局域网404
  • 天津建设科技杂志的官方网站百度推广做的网站可以用吗
  • 网站方案建设书怎么写建筑业管理平台登录
  • 网站建立连接不安全怎么处理成都网站建设兼职
  • 兰州酒店网站建设武安市城乡建设局网站
  • 我做动作你来猜的网站阿里云外贸建站
  • 网站页面标题设置网络推广合作平台
  • wordpress后台排版错乱怎么做企业网站优化
  • 站长工具大全微网站是什么
  • 天津优化网站哪家好用可以做兼职的网站有哪些工作室