window对象知识总结

Window对象属性

属性名属性功能
closed返回窗口是否已被关闭
defaultStatus设置或返回窗口状态栏中的默认文本
document对 Document 对象的只读引用
history对 History 对象的只读引用
innerheight返回窗口的文档显示区的高度
innerwidth返回窗口的文档显示区的宽度
length设置或返回窗口中的框架数量
location用于窗口或框架的 Location 对象
name设置或返回窗口的名称
Navigator对 Navigator 对象的只读引用
opener返回对创建此窗口的窗口的引用
outerheight返回窗口的外部高度
outerwidth返回窗口的外部宽度
pageXOffset设置或返回当前页面相对于窗口显示区左上角的 X 位置
pageYOffset设置或返回当前页面相对于窗口显示区左上角的 Y 位置
parent返回父窗口
Screen对 Screen 对象的只读引用
self返回对当前窗口的引用。等价于 Window 属性
status设置窗口状态栏的文本
top返回最顶层的先辈窗口
windowwindow属性等价于self属性,它包含了对窗口自身的引用
screenLeft/screenTop/screenX/screenY只读整数。声明了窗口的左上角在屏幕上的的x坐标和y坐标。IE、Safari和Opera支持screenLeft和screenTop,而Firefox和Safari支持screenX和screenY

Window对象方法

对象名对象功能
alert()显示带有一段消息和一个确认按钮的警告框
blur()把键盘焦点从顶层窗口移开
clearInterval()取消由 setInterval() 设置的 timeout
clearTimeout()取消由 setTimeout() 方法设置的 timeout
close()关闭浏览器窗口
confirm()显示带有一段消息以及确认按钮和取消按钮的对话框
createPopup()创建一个 pop-up 窗口
focus()把键盘焦点给予一个窗口
moveBy()可相对窗口的当前坐标把它移动指定的像素
moveTo()把窗口的左上角移动到一个指定的坐标
open()打开一个新的浏览器窗口或查找一个已命名的窗口
print()打印当前窗口的内容
prompt()显示可提示用户输入的对话框
resizeBy()按照指定的像素调整窗口的大小
resizeTo()把窗口的大小调整到指定的宽度和高度
scrollBy()按照指定的像素值来滚动内容
scrollTo()把内容滚动到指定的坐标
setInterval()按照指定的周期(以毫秒计)来调用函数或计算表达式
setTimeout()在指定的毫秒数后调用函数或计算表达式

Window对象描述

Window 对象表示一个浏览器窗口或一个框架。在客户端 JavaScript 中,Window 对象是全局对象,所有的表达式都在当前的环境中计算。也就是说,要引用当前窗口根本不需要特殊的语法,可以把那个窗口的属性作为全局变量来使用。例如,可以只写 document,而不必写 window.document

同样,可以把当前窗口对象的方法当作函数来使用,如只写 alert(),而不必写 Window.alert()

除了上面列出的属性和方法,Window 对象还实现了核心 JavaScript 所定义的所有全局属性和方法

Window 对象的 window 属性和 self 属性引用的都是它自己。当你想明确地引用当前窗口,而不仅仅是隐式地引用它时,可以使用这两个属性。除了这两个属性之外,parent 属性、top 属性以及 frame[] 数组都引用了与当前 Window 对象相关的其他 Window 对象

要引用窗口中的一个框架,可以使用如下语法:

frame[i] //当前窗口的框架

self.frame[i] //当前窗口的框架

w.frame[i] //窗口 w 的框架

要引用一个框架的父窗口(或父框架),可以使用下面的语法:

parent //当前窗口的父窗口

self.parent //当前窗口的父窗口

w.parent //窗口 w 的父窗口

要从顶层窗口含有的任何一个框架中引用它,可以使用如下语法:

top //当前框架的顶层窗口

self.top //当前框架的顶层窗口

f.top //框架 f 的顶层窗口

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

一般来说,Window 对象的方法都是对浏览器窗口或框架进行某种操作;而 alert() 方法、confirm() 方法和 prompt 方法则不同,它们通过简单的对话框与用户进行交互。

全局的window对象

JavaScript中的任何一个全局函数或变量都是window的属性。

<script type="text/javascript">
    var name="aaaa";
    document.write(window.name);
</script>

window与self对象

self对象与window对象完全相同,self通常用于确认就是在当前的窗体内

<script type="text/javascript">
    document.write(window == self);      //必须相等,永远都相等
  document.write(window.Top == window.self);  //判断当前框架是否是主框架
</script>

window、self、window.self三者是等价的

window的子对象

window的主对象主要有:

JavaScript document 对象

JavaScript frames 对象

JavaScript history 对象

JavaScript location 对象

JavaScript navigator 对象

JavaScript screen 对象

window函数索引(仅对IE有效)

窗体控制函数:

moveBy() 函数:从当前位置水平移动窗体x个像素,垂直移动窗体y个像素,x为负数,将向左移动窗体,y为负数,将向上移动窗体

moveTo() 函数:移动窗体左上角到相对于屏幕左上角的(x,y)点,当使用负数做为参数时会把窗体移出屏幕的可视区域

resizeBy() 函数:相对窗体当前的大小,宽度调整w个像素,高度调整h个像素。如果参数为负值,将缩小窗体,反之扩大窗体。

resizeTo() 函数:把窗体宽度调整为w个像素,高度调整为h个像素

<body>
    <input type="button" id="btn1" value="先设置窗体固定大小!" onclick="window.resizeTo(500,500);" />
    <input type="button" id="btn2" value="再缩小10像素!" onclick="window.resizeBy(-10,-10);" />
    <input type="button" id="btn2" value="上!" onclick="window.moveBy(0,-5);" />
    <input type="button" id="btn2" value="下!" onclick="window.moveBy(0, 5);" />
    <input type="button" id="btn2" value="左!" onclick="window.moveBy(-5, 0);" />
    <input type="button" id="btn2" value="右!" onclick="window.moveBy(5, 0);" />
    <input type="button" id="btn2" value="距离左上角左边100像素,顶部200像素" onclick="window.moveTo(100, 200);" />
</body>

窗体滚动轴控制函数

scrollTo() 函数:在窗体中如果有滚动条,将横向滚动条移动到相对于窗体宽度为x个像素的位置,将纵向滚动条移动到相对于窗体高度为y个像素的位置。

scrollBy() 函数:如果有滚动条,将横向滚动条移动到相对于当前横向滚动条的x个像素的位置(就是向左移动x像素),将纵向滚动条移动到相对于当前纵向滚动条高度为y个像素的位置(就是向下移动y像素)。

注意区别,一个是相对当前窗口,一个是相当现在滚动条的位置。

<div style="height:150%; width:150%; background-color:#ddd">
    <input type="button" id="btn1" value="移动滚动条!" onclick="window.scrollTo(100,100);" />  //相当于设置绝对位置
    <input type="button" id="btn1" value="移动滚动条!" onclick="window.scrollBy(100,100);" />  //相当于累加
</div>

窗体焦点控制函数:

focus() 函数:使窗体或空间获得焦点

blur() 函数:使窗体或控件失去焦点

<div>
    <input type="button" value="获得焦点" onclick="document.getElementById('testInput').focus()" />
    <input type="button" value="失去焦点" onclick="document.getElementById('testInput').blur()" />
    <input type="text" value="text" id="testInput" onblur="alert('我已失去焦点')" />
</div>

新建窗体函数:

open() 函数:打开(弹出)一个新的窗体

close() 函数:关闭窗体

opener 属性:通过opener可以实现跨窗体之间的通讯,但是要保证是在同一域名下,而且一个窗体要包含另一个窗体的opener

格式:window.open(url, name, features, replace);

open函数参数说明:

url -- 要载入窗体的URL

name -- 新建窗体的名称(也可以是HTML target属性的取值,目标)

features -- 代表窗体特性的字符串,字符串中每个特性使用逗号分隔

replace -- 一个布尔值,说明新载入的页面是否替换当前载入的页面,此参数通常不用指定。

open方法示例
  <a href="2.html" target="2">在新窗口打开连接</a>
  <a href="#" onclick="window.open('http://www.google.com','2');">在已建立连接的页面打开新地址</a>

首先使用普通HTML链接打开一个页面(target名为dreamdu),之后使用open函数打开另一个页面,浏览器首先要查找是否有名称为dreamdu的窗体,如果有,就在这个窗体中加载open的地址。

经过设置的open
  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') 
弹窗方法
方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口;  
方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口;
open函数第三个参数features说明
参数名称类型说明
heightNumber设置窗体的高度,不能小于100
leftNumber说明创建窗体的左坐标,不能为负值
locationBoolean窗体是否显示地址栏,默认值为no
resizableBoolean窗体是否允许通过拖动边线调整大小,默认值为no
scrollableBoolean窗体中内部超出窗口可视范围时是否允许拖动,默认值为no
toolbarBoolean窗体是否显示工具栏,默认值为no
topNumber说明创建窗体的上坐标,不能为负值
statusBoolean窗体是否显示状态栏,默认值为no
widthNumber创建窗体的宽度,不能小于100

特性字符串中的每个特性使用逗号分隔,每个特性之间不允许有空格。

window.open函数新建立窗体后会返回新建窗体的window对象,通过此对象可以控制窗体(移动,改变大小,关闭)

close函数

<input type="button" value="关闭已经打开的窗体!" onclick="window.close();" />

self.close();配合上setTimeout()可以实现,打开的窗口定时关闭的效果。

对话框函数:

alert() 函数:弹出消息对话框(对话框中有一个OK按钮)

confirm() 函数:弹出消息对话框(对话框中包含一个OK按钮与Cancel按钮);confirm()消息对话框是排它的,也就是在用户点击对话框的按钮前,不能进行任何其它操作

if(confirm("确定跳大?")){
    alert("果断跳大");
}else{
    alert("猥琐打钱");
}

prompt() 函数:弹出消息对话框(对话框中包含一个OK按钮、Cancel按钮与一个文本输入框);函数有两个参数

str1 -- 要显示在消息对话框中的文本,不可修改

str2 -- 文本框中的内容,可以修改

var sResult=prompt("请在下面输入你的姓名", "aaa");
if(sResult!=null){
    alert(sResult + "已经超越神的杀戮");
}else{
    alert("无名氏已经超越神的杀戮");
}

时间等待与间隔函数:

setTimeout() 函数/clearTimeout() 函数:在指定的时间后调用函数

语法:

setTimeout(fun,time);  fun:函数体或函数名,time指定时间,单位为毫秒

clearTimeout(id);  取消指定的setTimeout函数将要执行的代码

setTimeout(function () {
    document.write("隔3秒后触发");   
}, 3000)    //在3秒后输出
setTimeout(fun1, 5000);     //在5秒后输出
function fun1() {
    document.write("函数名的方式5秒后触发");
}

setInterval() 函数/clearInterval() 函数:在间隔指定的事件后重复调用函数

语法:

setInterval(fun1,time)  fun:函数体或函数名,time指定的时间,单位为毫秒。会返回一个值,这个值是统计该函数的个数用的,第一个是1,第二个就是2,指明是第几个setInterval函数。

clearInterval(value)    value:setInterval()函数返回的值,根据这个值可以停止setInterval()的重复

var i = 0;
var h = setInterval(function () {
    document.write("3秒输出一次<br/>");
    i++;
    if (i >= 3) {
       clearInterval(h);
        document.write("停止输出");
    }
}, 3000);

注意,javascript是单线程的,因此,这个定时函数实际上是通过插入执行队列的方式来实现。

如下面的代码

function fn() { 
  setTimeout(function(){alert('can you see me?');},1000); 
  while(true) {} 
} 

alert();永远都不会执行,因为线程一直被死循环占用了

window.location子对象

解析URL对象location:location对象的属性有:href,protocal,host,hostname,port,pathname,search,hash

document.write(location.href + "<br/>");        // http://localhost:4889/javascriptTest.html
        document.write(location.protocol + "<br/>");    // http:
        document.write(location.host + "<br/>");        // localhost:4889
        document.write(location.hostname + "<br/>");    // localhost
        document.write(location.port + "<br/>");        // 4889
        document.write(location.pathname + "<br/>");    // /javascriptTest.html
        document.write(location.search + "换行<br/>");  //http://localhost:4889/javascriptTest.html?id=1&name=张三 如果路径是这样,则输出  ?id=1&name=%E5%BC%A0%E4%B8%89
        document.write(location.hash);                  //http: //localhost:4889/javascriptTest.html#kk=你好?id=1&name=张三 如果路径是这样,则输出  #kk=你好?id=1&name=张三
载入新文档

location.reload()  重新加载页面

location.replace()  本窗口载入新文档

location.assign()  本窗口载入新文档

location = "http://www.baidu.com"  //跳转到指定网址

location = "search.html"        //相对路径跳转

location = "#top"      //跳转到页面顶部

浏览历史

History()对象的back()与forward()  与浏览器的“后退”,"前进"功能一样。

history.go(-2);  后退两个历史记录

浏览器和屏幕信息

navigator.appName  Web浏览器全称

navigator.appVersion  Web浏览器厂商和版本的详细字符串

navigator.userAgent  客户端绝大部分信息

navagator.platform   浏览器运行所在的操作系统

document.write(navigator.userAgent + "<br/>"); // Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
document.write(navigator.appName + "<br/>");   //Netscape
document.write(navigator.appVersion + "<br/>"); //5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) document.write(navigator.platform);             //Win32
窗口的关系

parent == self  只有顶级窗口才返回true

parent和top属性允许脚本引用它的窗体的祖先,通常窗体是通过元素创建的,可以用来获取顶级窗口

event事件对象

最有用的两个操作:阻止事件冒泡。有时return false;不管用,这个或许就管用了

//IE:
window.event.cancelBubble = true;//停止冒泡
window.event.returnValue = false;//阻止事件的默认行为

//Firefox:
event.preventDefault();// 取消事件的默认行为  
event.stopPropagation(); // 阻止事件的传播
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值