2014-01-27 51 views
1

我有一个弹出窗口,要求用户填写表单。提交表单后,我需要将他们带到同一个弹出窗口中的“等待”屏幕,同时检查其信息。这是一个原型,所以只需要约5秒的延迟,因为没有任何事情正在被检查。然后,我想在延迟后自动关闭弹出窗口,而不是使用连接到按钮的window.close();Javascript弹出窗口:提交表单,显示“等待”屏幕5秒钟,然后自动关闭弹出框

下面是我使用的脚本:(编辑删除内联JS)

function centeredPopup(url,winName,w,h,scroll){ 
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0; 
TopPosition = (screen.height) ? (screen.height-h)/2 : 0; 
settings = 
'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable' 
popupWindow = window.open(url,winName,settings) 
} 

$('#linkPopup').click(function(){ 
    $(this).click(centeredPopup("popup.php","Popup Name","680","560")); 

    if(window.location.href=='popup_waiting.php'){ 
     setTimeout(function() { 
     close.window(); 
     }, 5000); 
    } 
}); 

我如何射击的弹窗:

<a class="button" id="linkPopup">Popup Link</a> 

使用上面我的代码,形式只是提交到等待屏幕但在指定的持续时间后没有关闭它,所以我假设我的语法或结构有问题。

预期的行为:

Expected Behavior

回答

0

这里有一个plunker: http://plnkr.co/edit/EAWf6EPauBuz36Wu8Erk?p=info

第一件事第一,考虑为什么你不应该使用内联JavaScript this答案。

为了打开一个弹出窗口,你可以使用:
window.open();

window.open(strUrl,strWindowName [,strWindowFeatures]);

弹出打开后,你可以用
window.close();

关闭它,你将需要设置一个timer,那将等待5秒钟,然后关闭弹出

窗口.setTimeout(func,delay,[param1,param2,...]);

+0

感谢您的协助。在window.open('?到相关的弹出窗口的URL)之后,通常会放置在两个空字符串中?我已经在窗体的弹出窗口中,所以在该窗体的提交中,我需要进入另一个页面弹出,然后将延迟后关闭。 – bcam7

+0

我已经更新了我的答案。 –

+0

我仍然在这里损失。 \t'$( '#linkPopup')。点击(函数(){ \t \t $ (这个)。单击(centeredPopup( “popup.php”, “弹出名”, “680”, “560”)); \t \t \t 如果\t(window.location.href =='popup_waiting。PHP'){ \t \t \t的setTimeout(函数(){ \t \t close.window(); \t \t \t},5000); \t \t} \t \t});' 我想这一点,但它仍然没有工作。您提供的代码无法正常工作:/ – bcam7

0

我解决了这个由包括以下进入等待页面弹出:

<script type="text/javascript"> 
$(document).ready(function() { 
setTimeout(function(){ 
    window.opener.location.href = "parentpage.php"; 
    window.close(); 
}, 2000); 
}); 
</script> 

这做的伎俩。

相关问题