JavaScript中windows.open()、windows.close()方法详解_javascript技巧

windows.open()方法详解:

window.open(URL,name,features,replace)用于载入指定的URL到新的或已存在的窗口中,并返回代表新窗口的Window对象。它有4个可选的 参数:

URL:一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。

name:一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 <a> 和 <form> 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么open()方法就直接使用这个窗口。在这种情况下,指定窗口特征的features参数将被忽略。保留的名字:“_ blank”、“_ parent” 、“_ top”指新窗口显示位置。

features:(非标准的,建议忽略该参数)一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在以下窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。

replace:一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持的值:true - URL替换浏览历史中的当前条目;false - URL在浏览历史中创建新的条目。

新的顶层浏览器窗口由方法 Window.open() 创建。当调用该方法时,应把 open() 调用的返回值存储在一个变量中,然后使用那个变量来引用新窗口。新窗口的 opener 属性反过来引用了打开它的那个窗口。

请不要混淆方法 Window.open() 与方法 Document.open(),这两者的功能完全不同。为了使您的代码清楚明白,请使用 Window.open(),而不要使用 open()。

大部分浏览器都增加了弹出窗口过滤系统。通常open方法只有当用户手动单击按钮或者链接 的时候才会调用。JavaScript代码尝试在浏览器初始载入(或卸载)时开启一个弹出窗口时,通常 会失败。

窗口特征(Window Features)

channelmode=yes|no|1|0 是否使用剧院模式显示窗口。默认为 no。

directories=yes|no|1|0 是否添加目录按钮。默认为 yes。

fullscreen=yes|no|1|0 是否使用全屏模式显示浏览器。默认是 no。处于全屏模式的窗口必须同时处于剧院模式。

height=pixels 窗口文档显示区的高度。以像素计。

left=pixels 窗口的 x 坐标。以像素计。

location=yes|no|1|0 是否显示地址字段。默认是 yes。

menubar=yes|no|1|0 是否显示菜单栏。默认是 yes。

resizable=yes|no|1|0 窗口是否可调节尺寸。默认是 yes。

scrollbars=yes|no|1|0 是否显示滚动条。默认是 yes。

status=yes|no|1|0 是否添加状态栏。默认是 yes。

titlebar=yes|no|1|0 是否显示标题栏。默认是 yes。

toolbar=yes|no|1|0 是否显示浏览器的工具栏。默认是 yes。

top=pixels 窗口的 y 坐标。

width=pixels 窗口的文档显示区的宽度。以像素计。

window.close()方法:

如果已经创建了一个Window对象w,可以这样关闭窗口w.close();而在本窗口中则用window.close();

注意:必须显式地调用window.close()方法,避免同document.close()方法混淆;

大多数浏览器只允许脚本自动关闭由脚本创建的窗口,如果要关闭其他窗口,可以用一个对话框取得用户的确认或取消;window.close()不能关闭一个内嵌在窗口内的窗体;

即使一个窗口关闭了,代表它的Window对象仍然存在。已关闭的窗口会有个值为true的closed 属性,它的document会是null,它的方法通常也不会再工作。

时间: 2025-01-18 20:07:56

JavaScript中windows.open()、windows.close()方法详解_javascript技巧的相关文章

JavaScript中关键字 in 的使用方法详解_javascript技巧

for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为"枚举". 对于数组 ,迭代出来的是数组元素 但不推荐,因为不能保证顺序,而且如果在Array的原型上添加了属性,这个属性也会被遍历出来,所以 最好数组使用正常的for循环,对象使用for-in循环 对于对象 ,迭代出来的是对象的属性: var obj = { "key1":"value1", "key2":"value2", &q

JavaScript 中有关数组对象的方法(详解)_javascript技巧

JS 处理数组多种方法 js 中的数据类型分为两大类:原始类型和对象类型. 原始类型包括:数值.字符串.布尔值.null.undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象----函数(js中的一等对象).数组(键值的有序集合). 数组元素的添加 arrayObj.push([item1 [item2 [. . . [itemN ]]]]); 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . .

js基础之DOM中元素对象的属性方法详解_javascript技巧

在 HTML DOM (文档对象模型)中,每个部分都是节点. 节点是DOM结构中最基本的组成单元,每一个HTML标签都是DOM结构的节点. 文档是一个    文档节点 . 所有的HTML元素都是    元素节点 所有 HTML 属性都是    属性节点 文本插入到 HTML 元素是    文本节点 注释是    注释节点. 最基本的节点类型是Node类型,其他所有类型都继承自Node,DOM操作往往是js中开销最大的部分,因而NodeList导致的问题最多.要注意:NodeList是'动态的',

JavaScript中SetInterval与setTimeout的用法详解_javascript技巧

setTimeout 描述 setTimeout(code,millisec) setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 注:调用过程中,可以使用clearTimeout(id_of_settimeout)终止 参数 描述 code 必需,要调用的函数后要执行的 JavaScript 代码串. millisec 必需,在执行代码前需等待的毫秒数. setTimeinterval setInterval(code,millisec[,"lang"]) 参数

在JavaScript中对HTML进行反转义详解_javascript技巧

在JavaScript中对字符串进行转义和反转义操作,常用的方法莫过于使用encodeURI (decodeURI).encodeURIComponent (decodeURIComponent)这几个方法,具体使用方法和区别. 但是如何在JavaScript中对HTML进行反转义操作呢?例如下面这段代码: var jsonData = { title: "<%= data.name? data.name : title %>", desc: "<%= da

JavaScript中闭包的写法和作用详解_javascript技巧

1.什么是闭包 闭包是有权访问另一个函数作用域的变量的函数. 简单的说,Javascript允许使用内部函数---即函数定义和函数表达式位于另一个函数的函数体内.而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量.参数和声明的其他内部函数.当其中一个这样的内部函数在包含它们的外部函数之外被调用时,就会形成闭包. 2.变量的作用域 要理解闭包,首先要理解变量的作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变

javascript中parentNode,childNodes,children的应用详解_javascript技巧

"parentNode" 常用来获取某个元素的父节点. 把 parentNodes 理解为容器, 在容器中有个子节点     例: <div id="parent"><b id="child">My text</b></div> 在上面的代码中, 你看到把"爹"作为一个 div 容器, 该容器中有个"孩子", 就是粗体的文字部分. 如果你打算用getEleme

JavaScript函数的4种调用方法详解_javascript技巧

在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造器形式.以及apply形式.这里所有的调用模式中,最主要的区别在于关键字 this 的意义,下面分别介绍这个几种调用形式. 本文主要内容: 1.分析函数的四种调用形式2.弄清楚函数中this的意义3.明确构造函对象的过程4.学会使用上下文调用函数 一.函数调用形式 函数调用形式是最常见的形式,也是最

javascript中if和switch,==和===详解_javascript技巧

今天改插件BoxScroll的时候,因为if里面的条件判断多于两个,于是立马想着改写switch.改到一半,忽然记起来JSHint等代码质量检测工具中的一个要求,用===替换==,不用不可靠的强制转型.然后忽然猜想,改成switch是不是会降低效率啊?switch里面的实际判断是==还是===? 有了想法,赶紧举个栗子,好一口吃掉: var a = '5'; switch (a) { case 5: console.log('=='); break; case "5": console

javascript中局部变量和全局变量的区别详解_javascript技巧

javascript有两种变量:局部变量和全局变量.当然,我们这篇文章是帮助大家真正的区别这两种变量. 首先,局部变量是指只能在本变量声明的函数内部调用.全局变量时整个代码中都可以调用的变量.当然,单单从字面上理解肯定是不清楚的,下面我详细的介绍下: 大家都知道,变量是需要用var关键字声明的.但是javascript中也可以隐式的使用变量,就是不用声明,直接使用.而且,千万注意,javascript把隐式声明的变量总是当成全局变量来使用的. 例如: 复制代码 代码如下: function my