vue打开其他项目页面并传入数据详解


Posted in Vue.js onNovember 25, 2020

1.不跨域,携带sessionstorage打开

主页面,存储sessionstorage后,打开页面

let data = {
	text:'我是数据'
};
let isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)?true:false;

sessionStorage.setItem('information',JSON.stringify(data));
//ios不能打开新窗口,所以改为移动端在原本页面打开,pc打开新窗口
window.open(window.location.protocol + "//" + window.location.host + reportUrl, isMobile?'_self':'_blank');

子页面

var date = JSON.parse(sessionStorage.getItem('information'));

2.跨域,iframe通信

跨域的情况下,无法携带sessionstorage,通过iframe的postMessage通信机制传递数据;

不跨域也可以用,但更建议使用第一种,比较丝滑~

主页面,写入url,加载完成后,发送数据

<iframe id='iframe' class="iframe" v-if="src" ref="iframe" :src="src"></iframe>

let data = {
	text:'我是数据'
};
this.src = url
this.$nextTick(()=>{
	document.getElementById('iframe').onload=()=>{
		document.getElementById('iframe').contentWindow.postMessage({
			type:'preview',
			data:data
		},this.src)
		document.getElementById('iframe').onload=null;
 }
})

子页面,执行监听,created、mounted都可以

created() {
	window.addEventListener('message',(event)=>{
	 console.log(event.data.type)
	 if(event.data&&event.data.type=='preview'){
	  console.log(event.data.data)
	  let data = event.data.data
	 }
	 }, false);
}

总结

到此这篇关于vue打开其他项目页面并传入数据的文章就介绍到这了,更多相关vue打开项目页面并传数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
Vue组件生命周期运行原理解析
Nov 25 Vue.js
如何实现vue的tree组件
Dec 03 Vue.js
对vue生命周期的深入理解
Dec 03 Vue.js
Vue在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
vue实现购物车的小练习
Dec 21 Vue.js
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
Vue+Flask实现图片传输功能
Apr 01 Vue.js
Vue开发中常见的套路和技巧总结
Nov 24 #Vue.js
浅析VUE防抖与节流
Nov 24 #Vue.js
解决vue页面刷新,数据丢失的问题
Nov 24 #Vue.js
Vue 的 v-model用法实例
Nov 23 #Vue.js
VUE+Element实现增删改查的示例源码
Nov 23 #Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 #Vue.js
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 #Vue.js
You might like
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
2013/02/01 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
python列表与元组详解实例
2013/11/01 Python
简单介绍Python中的几种数据类型
2016/01/02 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
Python文件和流(实例讲解)
2017/09/12 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
使用索引有什么好处
2016/07/27 面试题
无传销社区工作方案
2014/05/13 职场文书
中国梦读书活动总结
2014/07/10 职场文书
教师先进事迹材料
2014/12/16 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
教你怎么用Python监控愉客行车程
2021/04/29 Python
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript