a:父页面
b:子页面
由b页面向a页面传递值
方法1:
子页面的js方法
openDialog:function (val) {
app.article = val;
//将json串赋给父级窗体元素
window.parent.test(JSON.stringify(app.article)); // 这里传递的值最好是string,json对象容易出错
},
父页面:方法写在全局的方法里
父页面如果用的是vue,也可以直接写在js文件里。注这里方法要写到整个var app = new Vue({})之外
方法二:
子页面js
原理:在父页面写两个标签,一个input用来存贮数据,一个当子页面传递值得时候用来触发click事件,以得到子页面传递给父页面中得值
/** 打开弹框显示原文 */
openDialog:function (val) {
app.article = val;
//将json串赋给父级窗体元素:注,这里传递得值如果是对象就会报错(被这个问题坑了好长时间)
window.parent.document.getElementById('parentinput').value= JSON.stringify(app.article);
// addTabpp是父级窗体中 写有onclick方法的元素
window.parent.document.getElementById('parenta').click();
},
父页面html代码:
<input type="text" id="parentinput" value="inputvalue" style="opacity:0;">
<a href="javascript:void(0);" id="parenta" @click="parentclick()" style=”opacity:0;">
</a>
父页面js
parentclick:function () {
var a=document.getElementById("parentinput").value;
console.log(typeof a);
console.log(JSON.parse(JSON.stringify(a)));
},