JavaScript中的Window.open()用法示例详解

 更新时间:2023年07月27日 15:29:14   作者:孙 悟 空  
这篇文章主要给大家介绍了关于JavaScript中Window.open()用法的相关资料,今天在项目中用到了弹出子窗口,就想到了用JavaScript实现的两种方法,其中一个就是window.open(),需要的朋友可以参考下

1 方法介绍

window.open() 方法是 JavaScript 中的一个内置方法,用于在浏览器中打开一个新的窗口或标签页。

这个方法的语法是:

window.open(url, name, features, replace);

需要注意的是,由于弹出窗口的滥用已经成为了一个安全问题,现代浏览器通常会默认阻止 window.open() 方法的调用,除非是在用户的交互下触发的。因此,在实际的开发中,我们需要谨慎使用这个方法,避免被浏览器误认为是恶意行为。

2 参数说明

url 必选参数:要打开的 URL 地址。可以是任何有效的 URL,包括 HTTP、HTTPS、FTP 等协议。

name 可选参数:新窗口的名称,默认_blank。可以是任何字符串,有以下几种情况:

  • _self:当前窗口中打开。
  • _blank 或者 不写该参数:新窗口中打开,窗口name为空字符串。
  • 任何字符串 新窗口中打开,窗口name为任何字符串。如果指定的名称已经存在,则会在该窗口中打开该 URL,而不是新建一个窗口。

features 可选参数:一个逗号分隔的字符串,指定新窗口的一些特性。这个字符串中可以包含以下属性:

  • width:窗口的宽度;
  • height:窗口的高度;
  • top:窗口距离屏幕顶部的距离,默认0;
  • left:窗口距离屏幕左侧的距离,默认0;
  • menubar:是否显示菜单栏,yes\no;
  • toolbar:是否显示工具栏,yes\no;
  • location:是否显示地址栏,yes\no;
  • status:是否显示状态栏,yes\no;
  • resizable:是否允许用户调整窗口大小,yes\no;
  • scrollbars:是否显示滚动条,yes\no。

replace 可选参数:一个布尔值,指定新打开的 URL 是否替换当前页面的历史记录。如果为 true,则新的 URL 会替换当前页面的历史记录,用户点击浏览器的“返回”按钮时会回到上一个页面;如果为 false,则新的 URL 会添加到当前页面的历史记录中,用户点击浏览器的“返回”按钮时会回到上一个 URL。

以下几点需要注意:

当 指定 features 参数时, widthheight 是必须明确给出值,否则,features 参数将不起作用。

features 参数中, widthheighttopleft是常用的参数。menubartoolbarlocationstatusresizablescrollbars 参数已经被大部分浏览器弃用(为了更好的用户体验),因此即使进行了相关设置,也不会发生变化。

3 使用示例

3.1 当前窗口中打开网页

使用示例:

window.open("https://www.baidu.com/","_self");

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #btn{
            height: 50px;
            width: 200px;
            border: 1px solid black;
            background-color: bisque;
            line-height: 50px;
            text-align: center;
        }
        #btn:hover{
            border: 1px solid rgb(14, 102, 202);
            background-color: rgb(80, 180, 113);
            cursor:pointer;
        }
    </style>
</head>
<body>
    <div id="btn">百度一下</div>
    <script>
        var myBtn = document.getElementById('btn');
        myBtn.addEventListener('click',function(){
            //当前页面中打开
            window.open("https://www.baidu.com/","_self");
        })
    </script>
</body>
</html>

拓展:

当前窗口中打开也可以使用 window.location.href,它是 JavaScript 中的一个属性,表示当前网页的 URL 地址。它可以用来获取当前网页的 URL,也可以用来跳转到其他网页。

使用示例:

console.log(window.location.href); // 输出当前网页的 URL 地址
window.location.href = "https://www.example.com"; // 跳转到 https://www.example.com

需要注意的是,window.location.href 属性是可读可写的,在设置它的值时可以直接跳转到其他网页。因此在使用时需要小心,以免不小心导致页面跳转。

3.2 新窗口中打开网页

使用示例:

window.open("https://www.baidu.com/");
window.open("https://www.baidu.com/","_blank");
window.open("https://www.baidu.com/","任何字符串");

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #btn{
            height: 50px;
            width: 200px;
            border: 1px solid black;
            background-color: bisque;
            line-height: 50px;
            text-align: center;
        }
        #btn:hover{
            border: 1px solid rgb(14, 102, 202);
            background-color: rgb(80, 180, 113);
            cursor:pointer;
        }
    </style>
</head>
<body>
    <div id="btn">百度一下</div>
    <script>
        var myBtn = document.getElementById('btn');
        myBtn.addEventListener('click',function(){
            //新窗口中打开
            //var item1 = window.open("https://www.baidu.com/");
            //var item2 = window.open("https://www.baidu.com/","_blank");
            var item3 = window.open("https://www.baidu.com/","任何字符串");
            console.log('item',item3);
        })
    </script>
</body>
</html>

为便于理解name参数的含义,将Window.open()的返回值赋给一个变量item,打印结果如下:

3.3 在独立窗口中打开一个指定大小和位置的网页

示例代码:

window.open(url, "_blank", "width=800,height=300,top = 200, left=400");

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #btn {
            height: 50px;
            width: 200px;
            border: 1px solid black;
            background-color: bisque;
            line-height: 50px;
            text-align: center;
        }
        #btn:hover {
            border: 1px solid rgb(14, 102, 202);
            background-color: rgb(80, 180, 113);
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div id="btn">百度一下</div>
    <script>
        var myBtn = document.getElementById('btn');
        myBtn.addEventListener('click', function () {
            var url = "https://www.baidu.com/";
            window.open(url, "_blank", "width=800,height=300,top = 200, left=400");
        })
    </script>
</body>
</html>

结果展示:

总结 

到此这篇关于JavaScript中Window.open()用法的文章就介绍到这了,更多相关js中Window.open()用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • layer实现关闭弹出层刷新父界面功能详解

    layer实现关闭弹出层刷新父界面功能详解

    这篇文章主要介绍了layer实现关闭弹出层刷新父界面功能,结合实例形式分析了使用layui的layer在关闭弹出层时刷新父界面的常用实现技巧与相关操作注意事项,需要的朋友可以参考下
    2017-11-11
  • PHP 实现一种多文件上传的方法

    PHP 实现一种多文件上传的方法

    之前做项目的时候在实现表单中file类型input选择多图片时有很多种实现方法,今天小编给大家分享基于php实现一种多文件上传的方法,需要的朋友参考下吧
    2017-09-09
  • js中script的上下放置区别,Dom的增删改创建操作实例分析

    js中script的上下放置区别,Dom的增删改创建操作实例分析

    这篇文章主要介绍了js中script的上下放置区别,Dom的增删改创建操作,结合实例形式分析了JavaScript基本dom事件、script在head和body中放置的区别、以及Dom的增删改创建等相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • javaScript遍历对象和数组的方法总结

    javaScript遍历对象和数组的方法总结

    这篇文章介绍了javaScript遍历对象和数组的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • JavaScript 错误捕获与处理的完整指南

    JavaScript 错误捕获与处理的完整指南

    在JavaScript中捕获错误通常有四种方式,try-catch 语句块,Promise 的 catch 方法,throw 语句以及window.onerror事件处理程序,并通过代码示例给大家讲解的非常详细,需要的朋友可以参考下
    2024-02-02
  • 关于微信中a链接无法跳转问题

    关于微信中a链接无法跳转问题

    微信页面开发时,各个主页之间的跳转,完全是通过a链接进行的,但是来回跳转几次,再次从其他主页面跳回首页的时候,微信头部出现了跳转加载进度条,但是就是不跳转,也没有任何反应,怎么回事呢?下面小编给大家解答下
    2016-08-08
  • 微信小程序发布新版本时自动提示用户更新的方法

    微信小程序发布新版本时自动提示用户更新的方法

    这篇文章主要介绍了微信小程序发布新版本时自动提示用户更新的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用小程序具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • javascript 解决表单仍然提交即使监听处理函数返回false

    javascript 解决表单仍然提交即使监听处理函数返回false

    解决表单依旧提交即使监听处理函数返回false
    2010-03-03
  • javascript实现图片延迟加载方法汇总(三种方法)

    javascript实现图片延迟加载方法汇总(三种方法)

    看到一些大型网站,页面如果有很多图片的时候,当你滚动到相应的行时,当前行的图片才即时加载的,这样子的话页面在打开只加可视区域的图片,而其它隐藏的图片则不加载,一定程序上加快了页面加载的速度,跟着小编一起学习javascript实现图片延迟加载吧
    2015-08-08
  • JS实现悬浮球只在一侧滑动并且是横屏状态下

    JS实现悬浮球只在一侧滑动并且是横屏状态下

    这篇文章主要介绍了JS实现悬浮球只在一侧滑动 并且是横屏状态下,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论