Javascript 使用setTimeout控制弹出窗口

Javascript 使用setTimeout控制弹出窗口,javascript,jquery,html,popup,settimeout,Javascript,Jquery,Html,Popup,Settimeout,我正在为我的女朋友制作一个网站作为节日礼物。我们都喜欢艺术、密码和音乐,所以耶! 我正在尝试制作一个只有一个按钮/链接的网站,点击后,网站开始播放音乐,随着音乐的进行,打开和关闭带有一些GIF和东西的弹出窗口。问题是,我很难在我的第一个弹出窗口上应用延迟,它会自动关闭,但即使在阅读并尝试了本主题中其他问题的代码后,我也无法使弹出窗口打开的延迟正常工作。此外,我无法将弹出窗口放置在屏幕中的特定位置:((这是我的: <!doctype html> <html> <hea

我正在为我的女朋友制作一个网站作为节日礼物。我们都喜欢艺术、密码和音乐,所以耶! 我正在尝试制作一个只有一个按钮/链接的网站,点击后,网站开始播放音乐,随着音乐的进行,打开和关闭带有一些GIF和东西的弹出窗口。问题是,我很难在我的第一个弹出窗口上应用延迟,它会自动关闭,但即使在阅读并尝试了本主题中其他问题的代码后,我也无法使弹出窗口打开的延迟正常工作。此外,我无法将弹出窗口放置在屏幕中的特定位置:((这是我的:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title> pop ups </title>
<script>

var theURL = 'http://49.media.tumblr.com/tumblr_m3f88eRfVg1qcy0o0o1_500.gif';
var width  = 420;
var height = 315;

function popWindow() {
newWindow = window.open(theURL,'newWindow','toolbar=no,menubar=no,resizable=no,scrollbars=no,status=no,location=no,width='+width+',height='+height);


setTimeout(function() {
newWindow.close();
}, 3000)
} ;

</script>

</head>

<body>

    <p><a href="javascript:popWindow()"> temporalmente </a>      </p>

</body>

</html>

弹出窗口
var theURL=http://49.media.tumblr.com/tumblr_m3f88eRfVg1qcy0o0o1_500.gif';
var宽度=420;
var高度=315;
函数popWindow(){
newWindow=window.open(URL、'newWindow','toolbar=no,menubar=no,resizeable=no,scrollbars=no,status=no,location=no,width='+width+',height='+height);
setTimeout(函数(){
newWindow.close();
}, 3000)
} ;


因此,我正在测试您的代码,它似乎工作正常。可能是您使用的浏览器有问题。请在google chrome中试用您的代码,延迟应该会起作用。关于页面中的弹出位置,您希望在window.open.S的第三个参数中添加一个带有数字值的top and left属性像这样的东西:

...',height='+height + ', left=500, top=500')

要延迟打开窗口,请使用另一个
setTimeout

function popWindow() {
    setTimeout(function() {
        var newWindow = window.open(theURL,'newWindow','toolbar=no,menubar=no,resizable=no,scrollbars=no,status=no,location=no,width='+width+',height='+height);

        setTimeout(function() {
            newWindow.close();
        }, 3000);
    }, 5000);
}

什么不起作用?我尝试了你的代码,它在3秒后关闭窗口。很抱歉,我错过了不好的部分!!!我可以让它在3秒后关闭,但我不知道如何将它的出现延迟5秒左右。我猜它使用了setTimeout函数,但我就是做不好谢谢你的回答!我正在使用Safari 9.0和closing部分工作正常,但我仍然需要一些关于延迟显示的帮助,例如,我单击链接,3秒钟后弹出窗口出现,3秒钟后消失..我想用几个窗口/链接完成此操作谢谢你的回答,Barmar!它工作正常,但我必须禁用“阻止弹出窗口”选项根据Safari的安全首选项。Safari似乎允许延迟自动关闭,但不允许延迟打开弹出窗口(不禁用阻止弹出窗口选项)。是否有任何方法链接第一个弹出窗口的关闭(不延迟)到下一个弹出窗口?例如:当第一个弹出窗口关闭时,会自动显示一个新的弹出窗口。浏览器区分想要的弹出窗口和不想要的弹出窗口的方式是,想要的弹出窗口在运行事件处理程序时发生。当您延迟弹出窗口并超时时,它不再与原始事件直接链接,浏览器将这是广告软件试图绕过障碍。你所描述的正是广告软件试图做的,也是浏览器实施这些应对措施的原因。广告软件会弹出一个广告,当你关闭它时,一个新的广告会在它的位置弹出,你永远无法摆脱它们。如果你的女朋友信任你,她应该关闭她的弹出式blo如果她不愿意,也许你应该重新考虑这段关系。:)哈哈哈,是的,我想我会这么做!只是我以前在一个网站上做过弹出窗口的事情…我只是记不起名字…我得到链接后会在这里评论…我学到了很多!非常感谢!