★  示例1

要求:弹出新窗口,并向新窗口写入动态HTML代码
代码
  1. <buttononclick="btnOpen()">打开新窗口</button>
  2. <hr/>
  3. <span>使用JavaScript打开一个新的浏览器选项卡,并向其中动态写入HTML代码</span>
  4. <script>
  5. function openNewWin(){
  6. var w = window.open();/*打开空白窗口*/
  7. var d = w.document;/*获取该窗口的document对象*/
  8. d.open();/*新建html文档*/
  9. d.write("Dynamic code...");
  10. d.close();/*关闭html文档*/
  11. }
  12. function btnOpen(){
  13. return openNewWin();
  14. }
  15. </script>
效果图

 
★  示例2
要求:弹出可跳动的新窗口
代码
  1. <h2>跳动的窗口</h2>
  2. <hr/>
  3. <buttononclick="bounce.start()">打开跳动的窗口</button>
  4. <buttononclick="bounce.stop()">关闭跳动的窗口</button>
  5. <script>
  6. /*声明跳动窗口的对象*/
  7. var bounce ={
  8. x:0, y:0, w:300, h:200,//确定新建浏览器窗口左上角的坐标(x,y),宽度w,高度h
  9. dx:10, dy:15,//定义x,y坐标每次变化的增量
  10. win:null,//应用即将创建的浏览器窗口
  11. internal:100,//(x,y)坐标更新间隔(以毫秒(ms)为单位)
  12. timer:null,//定时器,由setInternal()方法返回
  13. start:function(){
  14. //为使浏览器窗口居于屏幕中央,计算左上角的坐标(x,y)
  15. bounce.x =(screen.availWidth - bounce.w)/2;
  16. bounce.y =(screen.availHeight - bounce.h)/2;
  17. //创建一个新的浏览器窗口并显示它
  18. //第一个参数表示新窗口中要显示的URL,可以直接使用JavaScript前缀执行简短的JavaScript代码
  19. //当浏览器解析到open的第一个参数会发现"<h1>Bounced-Window</h1>"不是JavaScript,但默认情况下对于不能执行的javaScript代码
  20. //浏览器会直接输出,刚好实现了向新窗口输入HTML代码的目的
  21. bounce.win = window.open('JavaScript:"<h1>Bounced-Window</h1>"',"_blank","left="+ bounce.x +",top="+ bounce.y +",width="+ bounce.w +",height="+ bounce.h +"");
  22. bounce.timer = setInterval(bounce.nextFrame, bounce.internal);
  23. //也可以不在上面的open方法中使用"javascript:"前缀来输出html代码,而是直接调用新窗口的document.write()方法来输出
  24. // 使用bounce.win.document来访问新窗口的document对象
  25. //每隔指定的毫秒数就使用setInterval( )方法调用nextFrame( )
  26. //方法返回值保存在timer属性中,这样,后面我们就可以调用clearInterval( )方法停止动画
  27. },
  28. stop:function(){
  29. clearInterval(bounce.timer);
  30. if(!bounce.win.closed) bounce.win.close();
  31. },
  32. nextFrame:function(){
  33. //如果关闭窗口,则清除定时器
  34. if(bounce.win.closed){
  35. clearInterval(bounce.timer);
  36. }
  37. //如果浏览器窗口跳动到屏幕的左或右边缘,则反向移动
  38. if((bounce.x + bounce.dx)>(screen.availWidth - bounce.w)||(bounce.x + bounce.dx)<0)
  39. bounce.dx =-bounce.dx;
  40. if((bounce.y + bounce.dy)>(screen.availHeight - bounce.h)||(bounce.y + bounce.dy)<0)
  41. bounce.dy =-bounce.dy;
  42. //同步更新当前窗口左上角的坐标,并结合moveTo属性实现跳动效果
  43. bounce.x =(bounce.x + bounce.dx);
  44. bounce.y =(bounce.y + bounce.dy);
  45. bounce.win.moveTo(bounce.x, bounce.y);
  46. }
  47. }
  48. </script>
效果图

 
关于示例2的解析:
        该效果的实现步骤是,先实现新窗口的弹出与关闭,然后再设置计时器并使窗口坐标随着更新。最后是关闭窗口和停止计时的判断。
 
 

使用BOM 的window对象属性打开新窗口的更多相关文章

  1. js 用window.open(参数) 打开新窗口,在新窗口怎么获取传过来的参数

    unction openwin(taskno){window.open ('playIt.jsp?taskno='+taskno,'play','height=100,width=400,toolba ...

  2. JS打开新窗口防止被浏览器阻止的方法

    这篇文章主要介绍了JS打开新窗口防止被浏览器阻止的方法,分析对比了常用方法与改进方法,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考. ...

  3. JS打开新窗口防止被浏览器阻止的方法[转]

    本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考.具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器 ...

  4. BOM之window对象

    双重角色 BOM的核心对象是window,它表示浏览器的一个实例.在浏览器中,window对象有双重角色,它既是通过Javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Glob ...

  5. window.open打开新窗口被浏览器拦截的处理方法

    一般我们在打开页面的时候, 最常用的就是用<a>标签,如果是新窗口打开就价格target="_blank"属性就可以了, 如果只是刷新当前页面就用window.loca ...

  6. JavaScript Window对象属性

    window 代表浏览器中一个打开的窗口. Window的属性 属性 描述 closed 获取引用窗口是否已关闭. defaultStatus 设置或获取要在窗口底部的状态栏上显示的缺省信息. dia ...

  7. 【repost】js window对象属性和方法相关资料整理

    window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval mov ...

  8. window.open打开新窗口 参数

    1,基本描述 oNewWindow = window.open( sURL , sName , sFeatures, bReplace) window.open在打开一个窗口(其url为sURL)后, ...

  9. javascript window对象属性和方法

    window对象 window对象表示一个浏览器窗口或一个框架.在客户端JavaScript中,window对象是全局对象,所有的表达式 都在当前的环境中计算.也就是说,要引用当前窗口根本不需要特殊的 ...

随机推荐

  1. vps主机修改系统远程端口号/添加防火墙

    3389端口是远程终端服务端口,Windows 系统中的远程终端服务是一项功能非常强大的服务,同时也成了入侵者长驻主机的通道,入侵者可以利用一些手段得到管理员账号和密码并入侵主机. 众所周知,入侵者一 ...

  2. vim中多标签和多窗口的使用

    用vim进行编辑的时候常常因为要编辑多个文件或者是编辑一个文件要参考其他文件而烦恼,这里介绍两种方法: 1.多标签 直接在编辑的时候输入: vim -p 要编辑的文件名 如vim -p * 就是编辑当 ...

  3. (笔记)Linux内核学习(八)之定时器和时间管理

    一 内核中的时间观念 内核在硬件的帮助下计算和管理时间.硬件为内核提供一个系统定时器用以计算流逝的时间.系 统定时器以某种频率自行触发,产生时钟中断,进入内核时钟中断处理程序中进行处理. 墙上时间和系 ...

  4. 气球或者泡泡向上飘动 jQuery插件

    圣诞.元旦要来了,公司以往基本每个月至少要搞一两款手机小游戏来宣传产品,这次也不例外!! 之前做过,按压柚子.许愿.吃柚子等等小游戏,这次是做个那种 气球向上飘动,戳破气球,随机获取奖品.如下图: 手 ...

  5. 『Golang』跨平台TUI(基于文字的用户界面)库Terbox-Go文档翻译

    原文 package termbox import "github.com/nsf/termbox-go" termbox-go 是一个用于创建跨平台TUI(基于文本的用户界面)的 ...

  6. 非常简单实用的Python HTTP服务

    在做分布式系统应用的时候经常在测试环境上传一个包,或者干嘛的,公司的服务器比较bug,只给ldap权限,每次只能scp到自己的个人目录下,然后才能进到公共账号下去cp,比较麻烦.这时候如果你需要一个简 ...

  7. 转载 jquery $(document).ready() 与window.onload的区别

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 windo ...

  8. google chrome set

    "D:\Program Files\Google\Chrome\Application\chrome_bk.exe" --start-maximized --user-data-d ...

  9. REHL5.5 linux的postfix的邮件服务器配置 (笔记)

    一.发送邮件服务器(smtp服务器) 1.系统安装时已经有postfix. 2.修改配置 1)vi main.cf //你可以先备份一下配置文件 myhostname = INMSC2//修改为你的主 ...

  10. jquery select选中表单特效三级联动

    好久没发帖了,今天发一个jquery select的表单三级联动,希望能对有需要的朋友有点帮助. js代码,当然还要加上jquery的包,应该都有的,这里就不发了. <script type=& ...