如何在x秒后自动关闭fancybox/lightbox/...弹出窗口?

zig*_*lek 2 javascript jquery popup lightbox fancybox

我有一个测试网站(index.html)打开一个弹出窗口(popup.html)并在三秒后关闭它.这是index.html的负责人:

<script language="javascript" type="text/javascript">
function popup(url) {
    newwindow=window.open(url,'name','height=70,width=300');
    if (window.focus) {newwindow.focus()}
    return false;
}
</script>
Run Code Online (Sandbox Code Playgroud)

这是index.html的主体:

<a href="#" onClick="return popup('popup.html')">Open in pop-up</a>
Run Code Online (Sandbox Code Playgroud)

这是popup.html的负责人:

<script>
    var howLong = 3000;
    t = null;
    function closeMe(){
        t = setTimeout("self.close()",howLong);
    }
</script>
Run Code Online (Sandbox Code Playgroud)

这是popup.html的主体:

<body onLoad="closeMe();self.focus()">
<p>Closing in 3 seconds</p>
</body>
Run Code Online (Sandbox Code Playgroud)

我想使用linghtbox/fancybox/what来显示弹出窗口...并在3秒后再次关闭它.我怎样才能做到这一点?我尝试了各种各样的东西,没有任何效果.实现这个最简单的方法是什么?

提前致谢!

JFK*_*JFK 7

您可以使用Fancybox(版本1.3.x版本2.x)打开外部html文档,并在几秒钟后关闭它.

对于fancybox v1.3.x,您的html应如下所示:

<a href="page.html" class="fancybox">open fancybox and close it automatically after 3 seconds</a>
Run Code Online (Sandbox Code Playgroud)

和脚本:

$(document).ready(function() {
 $(".fancybox").fancybox({
  'width': 640, // or whatever
  'height': 320,
  'type': 'iframe',
  'onComplete': function(){
    setTimeout( function() {$.fancybox.close(); },3000); // 3000 = 3 secs
  }
 });
}); // ready
Run Code Online (Sandbox Code Playgroud)

对于fancybox v2.x,html(注意class):

<a href="page.html" class="fancybox fancybox.iframe">open fancybox and close it automatically after 3 seconds</a>
Run Code Online (Sandbox Code Playgroud)

和脚本:

$(document).ready(function() {
 $(".fancybox").fancybox({
  width: 640, // or whatever
  height: 320,
  afterLoad: function(){
   setTimeout( function() {$.fancybox.close(); },3000); // 3000 = 3 secs
  }
 });
}); // ready
Run Code Online (Sandbox Code Playgroud)