我有一个测试网站(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>
这是index.html的主体:
<a href="#" onClick="return popup('popup.html')">Open in pop-up</a>
这是popup.html的负责人:
<script>
var howLong = 3000;
t = null;
function closeMe(){
t = setTimeout("self.close()",howLong);
}
</script>
这是popup.html的主体:
<body onLoad="closeMe();self.focus()">
<p>Closing in 3 seconds</p>
</body>
我想使用linghtbox / fancybox /无论什么来显示弹出窗口...并在3秒后再次关闭它。我该怎么做?我尝试了各种各样的东西,没有任何效果。实现这个最简单的方法是什么?
提前致谢!
答案 0 :(得分:7)
您可以使用Fancybox(version 1.3.x或version 2.x)打开外部html
文档,并在几秒钟后关闭它。
对于fancybox v1.3.x ,您的HTML应如下所示:
<a href="page.html" class="fancybox">open fancybox and close it automatically after 3 seconds</a>
和脚本:
$(document).ready(function() {
$(".fancybox").fancybox({
'width': 640, // or whatever
'height': 320,
'type': 'iframe',
'onComplete': function(){
setTimeout( function() {$.fancybox.close(); },3000); // 3000 = 3 secs
}
});
}); // ready
对于fancybox v2.x ,html(注意class
):
<a href="page.html" class="fancybox fancybox.iframe">open fancybox and close it automatically after 3 seconds</a>
和脚本:
$(document).ready(function() {
$(".fancybox").fancybox({
width: 640, // or whatever
height: 320,
afterLoad: function(){
setTimeout( function() {$.fancybox.close(); },3000); // 3000 = 3 secs
}
});
}); // ready
答案 1 :(得分:1)
onComplete或afterLoad对我不起作用,所以我在父页面上添加了以下代码
window.closeFancyBox = function () {
$.fancybox.close();
};
从弹出页面我调用代码
$(window).load(function(){
setTimeout( function() {window.parent.closeFancyBox(); },3000); // 3000 = 3 secs
});
答案 2 :(得分:0)
创建一个函数来关闭所有fancybox后加载并为该函数设置超时。
public function DeleteCode() {
$codeID = $this->owner->request->param("ID");
if($codeID && $code = PromoCode::get()->byID($codeID)) {
$code->delete();
}
return $this->owner->redirectBack();
}