使用BOM 的window对象属性打开新窗口
★ 示例1
<buttononclick="btnOpen()">打开新窗口</button>
<hr/>
<span>使用JavaScript打开一个新的浏览器选项卡,并向其中动态写入HTML代码</span>
<script>
function openNewWin(){
var w = window.open();/*打开空白窗口*/
var d = w.document;/*获取该窗口的document对象*/
d.open();/*新建html文档*/
d.write("Dynamic code...");
d.close();/*关闭html文档*/
}
function btnOpen(){
return openNewWin();
}
</script>

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


使用BOM 的window对象属性打开新窗口的更多相关文章
- js 用window.open(参数) 打开新窗口,在新窗口怎么获取传过来的参数
unction openwin(taskno){window.open ('playIt.jsp?taskno='+taskno,'play','height=100,width=400,toolba ...
- JS打开新窗口防止被浏览器阻止的方法
这篇文章主要介绍了JS打开新窗口防止被浏览器阻止的方法,分析对比了常用方法与改进方法,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考. ...
- JS打开新窗口防止被浏览器阻止的方法[转]
本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考.具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器 ...
- BOM之window对象
双重角色 BOM的核心对象是window,它表示浏览器的一个实例.在浏览器中,window对象有双重角色,它既是通过Javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Glob ...
- window.open打开新窗口被浏览器拦截的处理方法
一般我们在打开页面的时候, 最常用的就是用<a>标签,如果是新窗口打开就价格target="_blank"属性就可以了, 如果只是刷新当前页面就用window.loca ...
- JavaScript Window对象属性
window 代表浏览器中一个打开的窗口. Window的属性 属性 描述 closed 获取引用窗口是否已关闭. defaultStatus 设置或获取要在窗口底部的状态栏上显示的缺省信息. dia ...
- 【repost】js window对象属性和方法相关资料整理
window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval mov ...
- window.open打开新窗口 参数
1,基本描述 oNewWindow = window.open( sURL , sName , sFeatures, bReplace) window.open在打开一个窗口(其url为sURL)后, ...
- javascript window对象属性和方法
window对象 window对象表示一个浏览器窗口或一个框架.在客户端JavaScript中,window对象是全局对象,所有的表达式 都在当前的环境中计算.也就是说,要引用当前窗口根本不需要特殊的 ...
随机推荐
- 如何在使用MAMP环境下安装MySQLdb
我的电脑上没有安装XAMPP,而是安装了MAMP PRO,其实两者都差不多,都是PHP+MySQL+Apache的集成环境,只是MAMP的GUI界面更华丽一些,但是也更复杂一些. 好了不说这些,说说问 ...
- 【html】button按钮的一些问题
问题: button 按钮在不设置 type 属性时,在不同的浏览器作用不一样.举个例子: html: <!doctype html> <html lang="en&quo ...
- iOS WKWebView详解
UIWebView就不用说了,这个过时了,现在iOS8以后建议都使用WKWebView. WKWebView 是现代 WebKit API 在 iOS 8 和 OS X Yosemite 应用中的核心 ...
- tensorflow 运行成功!
折腾了一天安装tensorflow环境,终于可以运行,也记录一下安装中容易犯的错误总结(写给python小白们) 一.win7 双系统 安装ubuntu 16.04 ,参考 http://jingya ...
- SQL SERVER 2008 如何查询含有某关键词的表
最新文章:Virson's Blog 文章来自:百度知道 /** 查询一个数据库中所有的数据中是否包含指定字符串 */ ) set @str='字符串' --要搜索的字符串 ) declare tb ...
- ALTER SEQUENCE 修改序列解决唯一约束冲突 unique constraint violated
背景 自增序列会遇到也会遇到唯一约束冲突吗?是的,最常见的情况就是数据迁移之后,导致数据最大值超过序列值. 软件开发中不遇到些出乎意料的问题,总感觉不太够劲. 修改序列(ALTER SEQUENCE) ...
- bower 新建.bowerrc文件
Twitter工程师团队推出了Bower,这是一个针对Web开发的包管理器.该工具主要用来帮助用户轻松安装CSS.JavaScript.图像等相关包,并管理这些包之间的依赖. 随着网页功能变得越来越复 ...
- Node快速安装
1.安装nvm nvm是一个快速安装和切换nodejs版本的管理器 直接从 github clone nvm 到本地, 这里假设大家都使用 ~/git 目录存放 git 项目: $ cd ~/git ...
- SVN分支与合并
分支的基本概念就正如它的名字,开发的一条线独立于另一条线,如果回顾历史,可以发现两条线分享共同的历史,一个分支总是从一个备份开始的,从那里开始,发展自己独有的历史(如下图所示) ⑴创建分支 假设目前我 ...
- Linux SSH 连接不上
http://blog.csdn.net/cryhelyxx/article/details/46473783 在xshell下用ssh登录远程主机centos出现以下问题: Connection e ...