怎么用js弹出一个新窗口

JavaScript056

怎么用js弹出一个新窗口,第1张

function openwindow()

{

  window.open("

)

}

<input type="button" value="弹出新窗口" onclick="openwindow()">

用window.opener关联父级窗口,父级窗口的刷新你可以用window.opener.location.reload()。

但是window.opener.location.reload()这句话在method=get的情况下根本不起作用,但是换成method=post,则主窗口会弹出一个对话框,要求点击确定才能刷新,可以试一下:window.opener.location.href=window.opener.location.href

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"/>

<title>定时弹窗</title>

<style type="text/css">

html,body{

width:100%

height:100%

margin:0

padding:0

}

.box{

width:100%

}

.tc-box{

width:25%

margin:80px auto

border:1px solid #f00

text-align: center

line-height: 150px

}

</style>

</head>

<body>

<div class="box">

<div class="tc-box" id="tc">

<div class="tc-cont">我是弹窗内容</div>

<button id="btn">点击关闭</button>

</div>

</div>

<script type="text/javascript">

var btn = document.getElementById('btn')

btn.onclick = function(){

var tc = document.getElementById('tc')

tc.style.display = 'none'

}

function xs(){

var tc = document.getElementById('tc')

tc.style.display = 'block'

console.log('aaaaaaa')

}

var lia = window.setInterval(xs,5000)

</script>

</body>

</html>

点击关闭之后5秒就会自动弹出

上面的代码有点不太合理,下面代码优化了一下。

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"/>

<title>定时弹窗</title>

<style type="text/css">

html,body{

width:100%

height:100%

margin:0

padding:0

}

.box{

width:100%

}

.tc-box{

width:35%

margin:80px auto

border:1px solid #f00

text-align: center

line-height: 150px

}

</style>

</head>

<body>

<div class="box">

<div class="tc-box" id="tc">

<div class="tc-cont">我是弹窗内容</div>

<button id="btn">点击关闭5秒后继续弹出</button>

<button id="btn1">点击关闭,不再弹窗</button>

</div>

</div>

<script type="text/javascript">

var btn = document.getElementById('btn')

function xs(){

var tc = document.getElementById('tc')

tc.style.display = 'block'

tc.classList.remove('on')

console.log('aaaaaaa')

}

btn.onclick = function(){

var tc = document.getElementById('tc')

tc.style.display = 'none'

var lia = window.setInterval('xs()',5000)

tc.classList.add('on')//添加一个on类

if(tc.classList.contains('on') == true){ //查询类

function dsq(){

window.clearInterval(lia)

}

window.setTimeout(dsq,5000)

}

}

// 清除定时器

var btn1 = document.getElementById('btn1')

btn1.onclick = function(){

var tc = document.getElementById('tc')

tc.style.display = 'none'

}

</script>

</body>

</html>

因为一直弹窗会对浏览器产生很大的负荷,这里除了添加不再弹窗之外还优化了一下代码。

之前的代码是点击之后开始执行循环函数,但是不停止循环,不管弹窗是否显示的状态都会每5秒执行一次,这样明显不合理,应该是在你关闭弹窗之后5秒才执行。弹窗在显示状态不执行。