在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准备好之后被调用,但不一定是在加载其他脚本等资产之前。我不知道这是否是一个解决方案,但它可能是一个值得尝试的东西。