Thickbox萤火虫问题



在firefox中,如果用户在加载页面之前单击下面的链接,它将在一个新窗口中打开,而不是在thickbox对话框中。有什么办法可以防止这种情况发生吗?

我无法在IE/safari 上实现这一点

Thickbox的工作原理是在链接上设置一个类"Thickbox":

<a href="http://someurl.com" class="thickbox none new" title="Open">Open</a>

然后在厚盒中

//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;
});

确保以正确的顺序加载各种脚本资源。例如

<script type="text/javascript" src="path/to/jquery.js"></script>
<script type="text/javascript" src="path/to/thickbox.js"></script>
<script type="text/javascript">
    jQuery(function($) {
        tb_init(...);
        // etc
    });
</script>

这可以在<head>中,或者优选地,刚好在关闭</body>标签之前。

正如Pointy所指出的那样,Thickbox不再处于积极开发之中。您可以考虑以下替代方案之一

  • ColorBox
  • DOMWindow与Thickbox出自同一作者
  • FancyBox

好吧,我还不能尝试这个,而且我不是jQuery的专家,所以请注意,你的里程数可能会因这个答案而异。

您是否尝试过将初始化放在$(document).load()中而不是$(document).ready()中?如果我读对了文档,那么ready()会在DOM准备好之后被调用,但不一定是在加载其他脚本等资产之前。我不知道这是否是一个解决方案,但它可能是一个值得尝试的东西。

最新更新