ivew-comps2
Version:
ivew-comps2 公有云平台基础组件库本项目基于
49 lines (41 loc) • 1.03 kB
JavaScript
const Qs = require("qs");
//监听message事件
export function listenMessage(fn) {
if (window) {
window.addEventListener("message", fn, false);
}
}
/**
* 用于和home通信
*/
export function postMessage(data) {
if (!window || !window.top || window.top === window.self) return;
window.top.postMessage.call(window.top, data, "*");
}
/**
* 只能跳转到home项目中存在的路由
* @param {Object} route 当前路由对象
*/
export function replace(route) {
postMessage({ type: "route", route: JSON.stringify(route) });
}
/**
*
* @param {String} name 跳转的tab页
* @param {String} url 跳转路径需要带完整的路由
* @param {Object} params 携带参数
*/
export function redirect(url, params, name) {
let path =
params && JSON.stringify(params) != "{}"
? `${url}?${Qs.stringify(params)}`
: url;
let route = {
path
};
if (name) route.name = name;
postMessage({
type: "redirect",
route
});
}