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 相关文章推荐
vue+vant实现购物车全选和反选功能
Nov 17 Vue.js
详解vue 组件注册
Nov 20 Vue.js
vue实现表格合并功能
Dec 01 Vue.js
vue+element实现动态加载表单
Dec 13 Vue.js
Vue解决移动端弹窗滚动穿透问题
Dec 15 Vue.js
Vue中computed和watch有哪些区别
Dec 19 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
vue中 this.$set的使用详解
Nov 17 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
Vue3实现简易音乐播放器组件
Aug 14 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(二)
2012/03/21 PHP
php长字符串定义方法
2012/07/12 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
Python读写zip压缩文件的方法
2018/08/29 Python
python3实现多线程聊天室
2018/12/12 Python
Django 大文件下载实现过程解析
2019/08/01 Python
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
大学生旅游业创业计划书
2014/01/29 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
创业计划书之废品回收
2019/09/26 职场文书