在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); }
},