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 19 Vue.js
vue打开其他项目页面并传入数据详解
Nov 25 Vue.js
解决vue下载后台传过来的乱码流的问题
Dec 05 Vue.js
Vue中computed和watch有哪些区别
Dec 19 Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 Vue.js
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
vue3.0中使用element的完整步骤
Mar 04 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
Vue全家桶入门基础教程
May 14 Vue.js
Vue实现跑马灯样式文字横向滚动
Nov 23 Vue.js
vue实现可以快进后退的跑马灯组件
Apr 08 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
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
js同源策略详解
2015/05/21 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
vue中的循环对象属性和属性值用法
2020/09/04 Javascript
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
用Python实现职工信息管理系统
2020/12/30 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
企业环保标语
2014/06/10 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
银行给客户的感谢信
2015/01/23 职场文书
工地食品安全责任书
2015/05/09 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js