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对象中唯一即可

Logo

快速构建 Web 应用程序

更多推荐