isXianYue
  • window.open()方法会返回一个指向新窗口的索引。我们可以尝试使用该索引来调整新窗口的位置和大小。
var wroxWin=window.open("http://www.baidu.com","_blank","location=0,width=400,height=400,resizeable=1");
wroxWin.resizeTo(500,500);//窗口大小变为500x500
wroxWin.moveTo(500,500)//新窗口左上角移动到屏幕的(500,500)处
  • 调用close()方法还可以关闭新打开的窗口
wroxWin.close();
  • 大多数浏览器只允许通过用户点击的方式弹出窗口,例如以下代码的弹窗行为会被浏览器制止。
<body>
    <script>
        window.onload=()=>{
            tanChu();
            function tanChu(){
                var wroxWin=window.open("http://wwww.baidu.com","_blank");
            }
        }
    </script>
</body>

上面的代码实测在chrome、FF、Opera、Edge中均被拦截。

  • 弹出窗口屏蔽程序
    弹出窗口被屏蔽时考虑两种可能,一种是浏览器内置程序拦截,还有一种是浏览器插件拦截。

    • 当浏览器内置程序拦截时,window.open()会返回null。
    • 当浏览器插件拦截时,window.open()会报错。
  • 准确地判断弹窗是否被拦截

var blocked=false;
try{
    var worxWin=window.open("http://www.baidu.com","_blank");
    if(worxWin==null){
        blocked=true;
    }
}catch(ex){
    blocked=true;
}
if(blocked){
    alert("窗口被制止弹出");
}

分类:

技术点:

相关文章:

  • 2021-12-16
  • 2021-12-25
  • 2021-08-15
  • 2021-05-31
  • 2021-05-23
  • 2021-11-06
  • 2021-11-20
猜你喜欢
  • 2021-12-20
  • 2021-12-10
  • 2022-01-01
  • 2021-12-20
  • 2021-08-26
相关资源
相似解决方案