在firefox中,如果用户在页面加载之前单击以下链接,则会在新窗口而不是在thickbox对话框中打开。有什么方法可以防止这种情况吗?
我无法在IE / safari上实现这一点
Thickbox的工作原理是在链接上设置“thickbox”类:
<a href="http://someurl.com" class="thickbox none new" title="Open">Open</a>
然后在thickbox
//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;
});
答案 0 :(得分:0)
好吧,我不是我可以尝试这个的地方,而且我不是jQuery的专家,所以要预先警告你的里程可能因这个答案而有所不同。
您是否尝试过初始化$(document).load()而不是$(document).ready()?如果我正确读取the documentation,则在DOM准备好之后调用ready(),但不一定在加载其他脚本之类的资源之前调用ready()。我不知道这是否是一个解决方案,但可能需要尝试。
答案 1 :(得分:0)
确保以正确的顺序加载各种脚本资源。例如
<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不再处于积极发展阶段。您可以考虑以下替代方案之一