ruoyi中tab、弹窗是以iframe的形式添加到页面上的,这样想要实现类似广播的逻辑,一个iframe可以通知其他iframe做一些操作。
iframe是有自己的window对象的,被调用的iframe向自己的window对象中写入一个方法。在调用出遍历iframe找到方法后调用
调用iframe中:
//遍历节点,找到存在某方法就调用
function windowRecursion(window, funcName, param) {
var iframes = window.frames;
if (iframes) {
for (var i = 0; i < iframes.length; i++) {
var func = iframes[i][funcName];
if (func) {
func(param);
}
windowRecursion(iframes[i], funcName);
}
}
}
//传入window顶级节点
windowRecursion(window.top, 'notify');
被调用iframe中:
window.self.notify = function (param) {
}
保证方法在自己的window对象中唯一即可