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实现广告栏上下滚动效果
Nov 26 Vue.js
Vue router传递参数并解决刷新页面参数丢失问题
Dec 02 Vue.js
vue祖孙组件之间的数据传递案例
Dec 07 Vue.js
vue中配置scss全局变量的步骤
Dec 28 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
vue.js实现点击图标放大离开时缩小的代码
Jan 27 Vue.js
Vue如何实现变量表达式选择器
Feb 18 Vue.js
Vue项目中如何封装axios(统一管理http请求)
May 02 Vue.js
Vue详细的入门笔记
May 10 Vue.js
vue修饰符.capture和.self的区别
Apr 22 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
Vue深入理解插槽slot的使用
Aug 05 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
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
js中匿名函数的N种写法
2010/09/08 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
js前台分页显示后端JAVA数据响应
2013/03/18 Javascript
Seajs的学习笔记
2014/03/04 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
Python 命令行参数sys.argv
2008/09/06 Python
python实现的文件夹清理程序分享
2014/11/22 Python
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
python 如何在测试中使用 Mock
2021/03/01 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
八项规定整改方案
2014/02/21 职场文书
环保公益策划方案
2014/08/15 职场文书
销售活动策划方案
2014/08/26 职场文书
小学秋季运动会报道稿
2014/09/30 职场文书
婚前财产协议书范本
2014/10/19 职场文书
慰问信模板
2015/02/14 职场文书
郭明义观后感
2015/06/08 职场文书
SpringBoot整合Minio文件存储
2022/04/03 Java/Android
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers