跨 iframe 传输数据
程序员文章站
2022-11-01 18:53:42
获取 iframe 对象,然后通过获取的 iframe 对象操作该页面内的元素; ......
背景:项目用 easyui 写前端,窗口使用 easyui-window 内嵌套 iframe 展示页面。遇到需要在窗口间传输数据的需求。
解决方案
获取 iframe 对象,然后通过获取的 iframe 对象操作该页面内的元素;
代码
// 示例 var iframe = getiframe("iframe_dlgmydialog"); var datagrigdatas = iframe.$("#dg").datagrid('getdata'); // 获取iframe对象 function getiframe(name) { var browsertype = mybrowser(); var iframe; // ie浏览器 if (browsertype == "ie" || browsertype == "ie10+") { iframe = parent.window.frames[name]; } else { iframe = parent.window.frames[name].contentwindow; } return iframe; } // 判断当前浏览类型 function mybrowser() { var useragent = navigator.useragent; //取得浏览器的useragent字符串 var isopera = useragent.indexof("opera") > -1; //判断是否opera浏览器 var isie = useragent.indexof("compatible") > -1 && useragent.indexof("msie") > -1 && !isopera; //判断是否ie浏览器 var isedge = useragent.indexof("windows nt 6.1;") > -1 && useragent.indexof("trident/7.0;") > -1 && !isie; //判断是否ie的edge浏览器 var isff = useragent.indexof("firefox") > -1; //判断是否firefox浏览器 var issafari = useragent.indexof("safari") > -1 && useragent.indexof("chrome") == -1; //判断是否safari浏览器 var ischrome = useragent.indexof("chrome") > -1 && useragent.indexof("safari") > -1; //判断chrome浏览器 if (isie) { var reie = new regexp("msie (\\d+\\.\\d+);"); reie.test(useragent); var fieversion = parsefloat(regexp["$1"]); if (fieversion == 7) { return "ie"; } else if (fieversion == 8) { return "ie"; } else if (fieversion == 9) { return "ie"; } else if (fieversion == 10) { return "ie10+"; } else if (fieversion == 11) { return "ie10+"; } else { return "0" }//ie版本过低 } if (isff) { return "ff"; } if (isopera) { return "opera"; } if (issafari) { return "safari"; } if (ischrome) { return "chrome"; } if (isedge) { return "ie10+"; } }
上一篇: OPPO Watch 2怎么样 OPPO Watch 2详细评测
下一篇: 大王,不好了