2010年8月4日 星期三

Thickbox3.1彈出層關閉再打開,文本框不能輸入,即無法聚焦

症狀:關閉彈出層後,原來頁面上的文本框無法聚焦,即文本框變成readyonly(只讀)了

  原因和解決方法:這個的原因不好說,很多人都認為是ie本身的bug。 是由於iframe沒有移除,即使移除了。 內存上也麼有清除造成的。 這也是我猜的。 哈哈。 解決方法是在tb_remove()中先手動移除iframe然後,在強製做垃圾回收,至少我是可以啦。 哈哈。 代碼如下:


function tb_remove() {
$("#TB_imageOff").unbind("click");
$("#TB_closeWindowButton").unbind("click");
$("#TB_window").fadeOut("fast",function(){
if(navigator.userAgent.indexOf("MSIE")>0) { //如果是IE
//手動移除iframe,IE的一個bug
$('#TB_iframeContent').remove();
}
$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();
if(navigator.userAgent.indexOf("MSIE")>0) { //如果是IE
//自己調用垃圾回收,強制清楚iframe內存,解決文本框無法輸入問題。
CollectGarbage();
}
});
$("#TB_load").remove();
if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
$("body","html").css({
height: "auto",
width: "auto"
});
$("html").css("overflow","");
}
document.onkeydown = "";
document.onkeyup = "";
return false;
}

摘自:http://www.kukaka.org/home/showonews/210

沒有留言:

wibiya widget