Chrome / Safari中的JQuery Thickbox Ajax Loader Bug

时间:2010-07-03 17:14:26

标签: jquery safari google-chrome thickbox

我知道它是一个旧的JQuery库,但我仍然在我的网站中使用Thickbox 3.1。在Chrome和Safari上,当您单击厚箱链接时,会弹出iframed页面,但没有预加载器图像。它直接进入页面并等待弹出窗口,直到它加载。当弹出窗口加载大量内容并花费超过几秒钟时,这就成了问题。它似乎打破了用户。会发生什么,就像在IE和Firefox上一样,是有一个加载ajax图像,它会旋转并等待弹出窗口加载直到它消失。有没有其他人有这个问题,知道如何修复这个JS代码?我相信这是在thickbox.js文件中调用它的地方:

//on page load call tb_init
$(document).ready(function(){   
  tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
  imgLoader = new Image();// preload image
  imgLoader.src = tb_pathToImage;
});

感谢任何人的帮助。这让我疯狂地想弄清楚!

1 个答案:

答案 0 :(得分:1)

我终于明白了。似乎Thickbox 3.1的创建者添加了代码来禁用Safari / Chrome上的加载功能。也许在2007年,它不受支持。解决方案在于评论第237至240行。

if($.browser.safari){
$("#TB_load").remove();
$("#TB_window").css({display:"block"});
}