在dwz框架中新建一个dialog弹出框,在弹出框中用到xhEditor,整合完代码后,,测试时有时会出现dialog弹出框与前一个页面的input框获取不到焦点,有时候又是很正常的情况。
原因,是IE 下对iframe的处理bug导致的,
解决办法:
在dwz-ria/js/dwz.navTab.js中 找到 _closeTab: function(index, openTabid)
直接在这个方法接着加上
_closeTab: function (index) {
this._getTabs().eq(index).remove();
this._getPanels().eq(index).find("iframe").attr("src","");
this._getPanels().eq(index).find("iframe").remove();
this._getPanels().eq(index).remove();
this._getMoreLi().eq(index).remove();
if (this._currentIndex >= index) this._currentIndex--;
this._init();
this._scrollCurrent();
this._reload(this._getTabs().eq(this._currentIndex));
}
变成如下样子:
_closeTab: function(index, openTabid){
this._getTabs().eq(index).remove();
this._getPanels().eq(index).remove();
this._getMoreLi().eq(index).remove();
if (this._currentIndex >= index) this._currentIndex--;
if (openTabid) {
var openIndex = this._indexTabId(openTabid);
if (openIndex > 0) this._currentIndex = openIndex;
}
this._init();
this._scrollCurrent();
this._reload(this._getTabs().eq(this._currentIndex));
},
// 增加开始 解决获不到光标焦点的问题
_closeTab: function (index) {
this._getTabs().eq(index).remove();
this._getPanels().eq(index).find("iframe").attr("src","");
this._getPanels().eq(index).find("iframe").remove();
this._getPanels().eq(index).remove();
this._getMoreLi().eq(index).remove();
if (this._currentIndex >= index) this._currentIndex--;
this._init();
this._scrollCurrent();
this._reload(this._getTabs().eq(this._currentIndex));
},
//////----增加结束-----------------/////////
closeTab: function(tabid){
var index = this._indexTabId(tabid);
if (index > 0) { this._closeTab(index); }
},
本文介绍了解决在dwz框架中使用dialog弹窗时出现的IE浏览器焦点丢失问题的方法。通过对dwz.navTab.js文件进行修改,确保了在关闭包含iframe的tab时能正确释放资源并恢复焦点。
3258

被折叠的 条评论
为什么被折叠?



