`

window.open的例子和使用方法以及参数说明(完整版)

阅读更多
一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+
二、基本语法:
window.open(pageURL,name,parameters)
其中:
pageURL 为子窗口路径
name 为子窗口句柄
parameters 为窗口参数(各参数用逗号分隔)
三、示例:
<SCRIPT> 
<!-- 
window.open ('page.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no') 
//写成一行 
--> 
</SCRIPT> 

脚本运行后,page.html将在新窗体newwindow中打开,宽为100,高为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。
请对照。

上例中涉及的为常用的几个参数,除此以外还有很多其他参数,请见四。

四、各项参数
其中yes/no也可使用1/0;pixel value为具体的数值,单位象素。

参数 | 取值范围 | 说明
| |
  • alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
  • alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
  • depended | yes/no | 是否和父窗口同时关闭
  • directories | yes/no | Nav2和3的目录栏是否可见
  • height | pixel value | 窗口高度
  • hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
  • innerHeight | pixel value | 窗口中文档的像素高度
  • innerWidth | pixel value | 窗口中文档的像素宽度
  • location | yes/no | 位置栏是否可见
  • menubar | yes/no | 菜单栏是否可见
  • outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
  • outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
  • resizable | yes/no | 窗口大小是否可调整
  • screenX | pixel value | 窗口距屏幕左边界的像素长度
  • screenY | pixel value | 窗口距屏幕上边界的像素长度
  • scrollbars | yes/no | 窗口是否可有滚动栏
  • titlebar | yes/no | 窗口题目栏是否可见
  • toolbar | yes/no | 窗口工具栏是否可见
  • Width | pixel value | 窗口的像素宽度
  • z-look | yes/no | 窗口被激活后是否浮在其它窗口之上

例子说明:
【1、最基本的弹出窗口代码】

其实代码非常简单:

<SCRIPT LANGUAGE="javascript"> 
<!-- 
window.open ('page.html') 
--> 
</SCRIPT> 


因为着是一段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="javascript">标签和</script>之间。<!-- 和 -->是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。
window.open ('page.html') 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以,只是不要混用。
这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</body>也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。

【2、经过设置后的弹出窗口】

下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。
我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。
<SCRIPT LANGUAGE="javascript"> 
<!-- 
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no') 
//写成一行 
--> 
</SCRIPT> 


参数解释:
  • <SCRIPT LANGUAGE="javascript"> js脚本开始;
  • window.open 弹出新窗口的命令;
  • 'page.html' 弹出窗口的文件名;
  • 'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;
  • height=100 窗口高度;
  • width=400 窗口宽度;
  • top=0 窗口距离屏幕上方的象素值;
  • left=0 窗口距离屏幕左侧的象素值;
  • toolbar=no 是否显示工具栏,yes为显示;
  • menubar,scrollbars 表示菜单栏和滚动栏。
  • resizable=no 是否允许改变窗口大小,yes为允许;
  • location=no 是否显示地址栏,yes为允许;
  • status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
  • </SCRIPT> js脚本结束

【3、用函数控制弹出窗口】

下面是一个完整的代码。
<html> 
<head> 
<script LANGUAGE="JavaScript"> 
<!-- 
function openwin() { window.open ("page.html", "newwindow", "height=100, width=400, toolbar= 
no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") 
//写成一行 
} 
//--> 
</script> 
</head> 
<body onload="openwin()"> 
...任意的页面内容... 
</body> 
</html> 
这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。 
怎么调用呢? 
方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口; 
方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口; 
方法三:用一个连接调用: 
<a href="#" onclick="openwin()">打开一个窗口</a> 
注意:使用的“#”是虚连接。 
方法四:用一个按钮调用: 
<input type="button" onclick="openwin()" value="打开窗口"> 

【4、同时弹出2个窗口】 

对源代码稍微改动一下: 
<script LANGUAGE="JavaScript"> 
<!-- 
function openwin() 
{ window.open ("page.html", "newwindow", "height=100, width=100, top=0,left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") 
//写成一行 
window.open ("page2.html", "newwindow2", "height=100, width=100, top=100, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") 
//写成一行 
} 
//--> 
</script> 


为避免弹出的2个窗口覆盖,用top和left控制一下弹出的位置不要相互覆盖即可。最后用上面说过的四种方法调用即可。

注意:2个窗口的name(newwindows和newwindow2)不要相同,或者干脆全部为空。OK?

【5、主窗口打开文件1.htm,同时弹出小窗口page.html】

如下代码加入主窗口<head>区:
<script language="javascript"> 
<!-- 
function openwin() 
{window.open("page.html","","width=200,height=200") 
} 
//--> 
</script> 

加入<body>区:
<a href="1.htm" onclick="openwin()">open</a>即可。

【6、弹出的窗口之定时关闭控制】

下面我们再对弹出的窗口进行一些控制,效果就更好了。如果我们再将一小段代码加入弹出的页面(注意是加入到page.html的HTML中,可不是主页面中,否则...),让它10秒后自动关闭是不是更酷了?

首先,将如下代码加入page.html文件的<head>区:
<script language="JavaScript"> 
function closeit() 
{setTimeout("self.close()",10000) //毫秒} 
</script> 

然后,再用<body onload="closeit()"> 这一句话代替page.html中原有的<BODY>这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗口的代码,10秒钟后就自行关闭该窗口)

【7、在弹出窗口中加上一个关闭按钮】

<FORM> 
<INPUT TYPE='BUTTON' VALUE='关闭' onClick='window.close()'> 
</FORM> 


呵呵,现在更加完美了!

【8、内包含的弹出窗口-一个页面两个窗口】

上面的例子都包含两个窗口,一个是主窗口,另一个是弹出的小窗口。

通过下面的例子,你可以在一个页面内完成上面的效果。
<html> 
<head> 
<SCRIPT LANGUAGE="JavaScript"> 
function openwin() 
{OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no,scrollbars="+scroll+",menubar=no"); 
//写成一行 
OpenWindow.document.write("<TITLE>例子</TITLE>") 
OpenWindow.document.write("<BODY BGCOLOR=#ffffff>") 
OpenWindow.document.write("<h1>Hello!</h1>") 
OpenWindow.document.write("New window opened!") 
OpenWindow.document.write("</BODY>") 
OpenWindow.document.write("</HTML>") 
OpenWindow.document.close()} 
</SCRIPT> 
</head> 
<body> 
<a href="#" onclick="openwin()">打开一个窗口</a> 
<input type="button" onclick="openwin()" value="打开窗口"> 
</body> 
</html> 


看看 OpenWindow.document.write()里面的代码不就是标准的HTML吗?只要按照格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用OpenWindow.document.close()结束啊。

【9、终极应用--弹出的窗口之Cookie控制】

回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会弹出一次,是不是非常烦人?:-(有解决的办法吗?Yes! ;-) Follow me.

我们使用cookie来控制一下就可以了。

首先,将如下代码加入主页面HTML的<HEAD>区:
<script> 
function openwin() 
{window.open("page.html","","width=200,height=200")} 
function get_cookie(Name) 
{var search = Name + "=" 
var returnvalue = ""; 
if (document.cookie.length > 0) { 
offset = document.cookie.indexOf(search) 
if (offset != -1) { 
offset += search.length 
end = document.cookie.indexOf(";", offset); 
if (end == -1) 
end = document.cookie.length; 
returnvalue=unescape(document.cookie.substring(offset,end)) 
} 
} 
return returnvalue; 
} 
function loadpopup(){ 
if (get_cookie('popped')==''){ 
openwin() 
document.cookie="popped=yes" 
} 
} 
</script> 


然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不会弹出了。真正的Pop-Only-Once!

写到这里弹出窗口的制作和应用技巧基本上算是完成了,俺也累坏了,一口气说了这么多,希望对正在制作网页的朋友有所帮助俺就非常欣慰了。

需要注意的是,JS脚本中的的大小写最好前后保持一致。
分享到:
评论

相关推荐

    android ffmpeg3.4.2 硬解软解视频+nativewindow渲染例子

    在这个特定的例子中,我们关注的是FFmpeg 3.4.2版本,该版本提供了对Android设备硬件解码和软解码的支持,并结合Nativewindow进行视频渲染。下面我们将深入探讨这些关键知识点。 首先,FFmpeg 3.4.2是FFmpeg库的一...

    WebSQL例子、webSQL 增删改查

    该方法接受四个参数:数据库名称、版本号、描述、初始大小以及可选的最大大小。例如: ```javascript var db = window.openDatabase("MyDB", "1.0", "My Description", 10 * 1024 * 1024); ``` 二、创建表 在WebSQL...

    javascript fullscreen全屏实现代码

    这个函数使用window.open 方法打开一个新的窗口,并将其resize 到屏幕的尺寸大小。下面是代码: ```javascript function fullscreen() { win = window.open("Main.aspx", "_blank", "resizable=yes;status=yes;...

    js弹出窗口 + 获取上传文件全路径

    这涉及到两个主要的知识点:JavaScript创建弹出窗口以及获取文件的完整路径。 首先,让我们详细探讨JavaScript创建弹出窗口。在Web开发中,弹出窗口通常是通过`window.open()`函数实现的。这个函数接受两个参数,第...

    AJAX学习文档

    `open()`方法接收三个参数:请求类型(GET或POST)、URL以及是否异步执行。例如: ```javascript xmlhttp.open("GET", "test1.txt", true); xmlhttp.send(); ``` 这里的`GET`请求意味着从指定URL获取数据,而`POST...

    ASP编程代码对照表

    接着,定义连接字符串(`connStr`),并使用`Open`方法打开连接。最后,通过定义`CloseDatabase`函数来关闭数据库连接。 #### 十二、连接SQL Server数据库 **代码示例:** ```asp Option Explicit Dim startTime, ...

    vc window fades

    通过这个简单的例子,我们可以了解到在VC6.0下利用MFC和Windows API实现窗口特效的一种方法。虽然现在的开发环境和工具已经比VC6.0更先进,但这个基础知识对于理解Windows图形编程仍然非常有价值。

    jquery弹出框 提示框实例

    首先,jQuery提供了几种内置的弹出功能,如`.alert()`, `.confirm()`, 和 `.prompt()`,但这些实际上是jQuery包装了JavaScript原生的`window.alert()`, `window.confirm()`, 和 `window.prompt()`方法。然而,这些...

    ajax异步提交实例

    `createRequest()`函数负责创建这个对象,它尝试使用不同的方式来适应不同的浏览器环境,包括标准的XMLHttpRequest对象和针对旧版IE的ActiveXObject。 接下来,`toLogin()`函数是关键的AJAX调用部分。它获取用户在...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    6.2.htm 如何使用构造函数为对象实例增加属性和方法 6.3.htm 在网页上显示中文形式的日期 6.4.htm 将一个小数四舍五入到指定位数 6.5.htm 以从大到小冒泡排序法为例 6.6....

    html2canvas-0.4.1.zip

    3. 处理canvas:在回调函数中,你可以将canvas转换为图片,如通过toDataURL()方法获取数据URL,然后可以将其插入到页面上,或者通过`window.open()`创建新的浏览器窗口显示截图,也可以通过Ajax上传到服务器。...

    javascript 弹出窗口中是否显示地址栏的实现代码

    `window.open`函数是JavaScript中用于打开新窗口的关键方法,它接受三个参数: 1. `url`:要打开的URL,可以是相对路径或绝对路径。 2. `name`:新窗口的名称,用于后续操作,如`window.focus`或`window.close`。...

    E9流程表单前端接口API.pdf

    这样做可以确保API的完整性和跨平台兼容性。 #### 三、移动端兼容性 - **WfForm对象下的接口兼容新版移动端EM7**。这意味着在开发过程中无需为不同的终端编写特定的代码。为了进一步减少开发工作量和后期维护成本,...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或...

    vue使用websocket的方法实例分析

    一个常见的问题是,在这些事件处理函数中,`this`可能不再指向Vue实例,而是指向了WebSocket对象或者`undefined`,这会导致无法正确访问Vue实例中的数据和方法。 解决`this`指向问题的一个方法是在Vue实例的方法中...

    vue router 跳转时打开新页面的示例方法

    为了实现这个需求,我们可以借助 $router.resolve 方法来获取目标路由的完整 URL,然后用 window.open 方法打开新窗口。下面是一个具体的例子: ```javascript methods: { seeShare() { let routeUrl = this.$...

    ajax基础教程

    这里 `open` 方法的参数分别表示请求类型(如 GET 或 POST)、请求 URL 以及是否异步执行。`send` 方法用于发送请求。 #### 处理响应 `XMLHttpRequest` 对象提供了 `onreadystatechange` 事件处理器,当请求的状态...

    html转pdf插件

    这个脚本设置了PDF的纸张大小、方向和边距,并在打开URL后等待2秒,确保页面完全加载,然后将内容渲染为PDF文件`output.pdf`。 3. **运行转换脚本**: 打开命令行终端,输入以下命令运行脚本: ``` phantomjs ...

Global site tag (gtag.js) - Google Analytics