window 对象表示浏览器中打开的窗口。

window 对象集合

frames[] 返回窗口中所有命名的框架。(注意:框架数组包含frame标签和iframe标签,但不包含框架集frameset标签)

该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架或 。属性 frames.length 存放数组 frames[] 中含有的元素个数。

注意,frames[] 数组中引用的框架可能还包括框架,它们自己也具有 frames[] 数组。

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 的顶层窗口

javascript中的window.parent,window.top,window.self详解

在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口,

opener是用open方法打开当前窗口的那个窗口。

window.self

功能:是对当前窗口自身的引用。它和window属性是等价的。

语法:window.self

注:window、self、window.self是等价的。

window.top

功能:返回顶层窗口,即浏览器窗口。

语法:window.top

注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用。

window.parent

功能:返回父窗口。

语法:window.parent

注:如果窗口本身是顶层窗口,parent属性返回的是对自身的引用。

在框架网页中,一般父窗口就是顶层窗口,但如果框架中还有框架,父窗口和顶层窗口就不一定相同了。

判断当前窗口是否在同一个框架中:


    var b = window.top!=window.self;
    document.write( "当前窗口是否在同一个框架中:"+b );

你应当将框架视为窗口中的不同区域,框架是浏览器窗口中特定的部分。

一个浏览器窗口可以根据你的需要分成任意多的框架,一个单个的框架也可以分成其它多个框架,即所谓的嵌套框架。

window 对象属性

closed 返回窗口是否已被关闭。

defaultStatus 设置或返回窗口状态栏中的默认文本。

document 对Document 对象的只读引用。请参阅 Document 对象。

history 对History 对象的只读引用。请参数 History 对象。

innerheight 返回窗口的文档显示区的高度, IE9以下不支持, 采用document.documentElement.clientHeight代替。

innerwidth 返回窗口的文档显示区的宽度, IE9以下不支持, 采用document.documentElement.clientWidth代替。

解决兼容性:

window.innerWidth || document.documentElement.clientWidth;
window.innerHeight || document.documentElement.clientHeight;

实例:

$(window).resize(function() {
    var navWidth = window.innerWidth || document.documentElement.clientWidth;
    //console.log(navWidth);
    if(navWidth < 1920){
        $("div.clearfix").remove();
    }
});

length 设置或返回窗口中的框架数量。

location 用于窗口或框架的 Location 对象。请参阅 Location 对象。

name 设置或返回窗口的名称。

Navigator 对 Navigator 对象的只读引用。请参数 Navigator 对象。

opener 返回对创建此窗口的窗口的引用。

outerheight 返回窗口的外部高度。IE不支持此属性, 且没有提供替代的属性。

outerwidth 返回窗口的外部宽度。IE不支持此属性, 且没有提供替代的属性。

pageXOffset 设置或返回当前页面相对于窗口显示区左上角的 X 位置。IE不支持, 使用scrollLeft代替。

pageYOffset 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。IE不支持, 使用scrollTop代替。

parent 返回父窗口。

Screen 对 Screen 对象的只读引用。请参数 Screen 对象。

self 返回对当前窗口的引用。等价于 Window 属性。

status 设置窗口状态栏的文本。

top 返回最顶层的先辈窗口。

window window 属性等价于 self 属性,它包含了对窗口自身的引用。

screenLeft

screenTop

screenX

screenY

只读整数。声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari 和 Opera 支持 screenLeft 和 screenTop,

而 Firefox 和 Safari 支持 screenX 和 screenY。

window.opener

返回对创建此窗口的窗口的引用。

实例:

创建子窗口



新建网页

function f1(){
//window.open('url地址','打开形式_blank/_self/frame的src属性值/_top',规格);
window.open('./29-son.html','_blank','width=500,height=300,resizable=no,menubar=yes');
}





创建子窗口

29-son.html代码:



新建网页

//页面加载完毕,给li设置事件
window.onload = function(){
var lis = document.getElementsByTagName('li');
for(var i=0; i<lis.length; i++){
lis[i].onclick = function(){
//把获得的标签内容追加给父窗口
//opener代表父窗口的引用
var biaoti = opener.document.getElementById('biaoti');
biaoti.innerHTML+= this.innerHTML;
//alert(this.innerHTML);
}
}
}



子级窗口

  • red
  • blue
  • green

window 对象方法

alert() 显示带有一段消息和一个确认按钮的警告框。

blur() 把键盘焦点从顶层窗口移开。

clearInterval() 取消由 setInterval() 设置的 timeout。

clearTimeout() 取消由 setTimeout() 方法设置的 timeout。

close() 关闭浏览器窗口。

Firfox浏览器关闭方法出现问题

第一种解决方法:先使用open()方法,在打开的页面中再使用close()方法;

第二种解决方法:要在地址栏中输入about:config

搜索”close”, 查找到:dom.allow_scripts_to_close_windows 双击一下, 把false改为true。

注意:window.close()中的window关键字不能删除。

confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。

createPopup() 创建一个 pop-up 窗口。

focus() 把键盘焦点给予一个窗口。

moveBy() 可相对窗口的当前坐标把它移动指定的像素。

moveTo() 把窗口的左上角移动到一个指定的坐标。

open() 打开一个新的浏览器窗口或查找一个已命名的窗口。

print() 打印当前窗口的内容。

prompt() 显示可提示用户输入的对话框。

resizeBy() 按照指定的像素调整窗口的大小。

resizeTo() 把窗口的大小调整到指定的宽度和高度。

scrollBy() 按照指定的像素值来滚动内容。

scrollTo() 把内容滚动到指定的坐标。

setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。

setTimeout() 在指定的毫秒数后调用函数或计算表达式。

alert() 警告框 alert(message)

confirm() 确认框 confirm(message) 返回true和false

prompt() 提示框(输入框) prompt(text,defaultText) 返回变量, 如果没输入字符则返回””, 点击取消返回null

以上window对象的方法可以不带window.

prompt(text,defaultText)


function disp_prompt(){
var name=prompt("请输入您的名字","Bill Gates")
if (name!=null && name!=""){
document.write("你好," + name + "!今天过得好吗?")
}
}

open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。

window.open(URL,name,features,replace)

URL: 一个可选的字符串,声明了要在新窗口中显示的文档的 URL。

如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。

name: 一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。

这个名称可以用作标记 和 的属性 target 的值。如果该参数指定了一个已经存在的窗口,

那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。

_blank 在一个新的未命名的窗口载入文档

_self 在相同的框架或窗口中载入目标文档

_parent 把文档载入父窗口或包含了超链接引用的框架的框架集

_top 把文档载入包含该超链接的窗口,取代任何当前正在窗口中显示的框架

features: 一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。

在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。

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

true – URL 替换浏览历史中的当前条目。

false – URL 在浏览历史中创建新的条目。

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

请使用 Window.open(),而不要使用 open()。

窗口特征(Window Features)

width=pixels 窗口的文档显示区的宽度。以像素计(后面不需要单位)。

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

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

top=pixels 窗口的 y 坐标。

以上四个属性浏览器有效果

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

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

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

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

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

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

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

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

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

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

以上很多属性浏览器都已不支持

window.open(“http://picasaWeb.google.com/isaacshun”,”_blank”,”height=300,width=400,top=30,left=40,resizable=yes”);

注意:在逗号和等号前不能有空格


myWindow=window.open('','','width=200,height=100');
myWindow.document.write("This is 'myWindow'");
myWindow.focus();


function open_win(){
window.open("../default.html","_blank","toolbar=yes, location=yes, scrollbars=yes, resizable=no, width=400, height=400");
}

moveBy() 方法可相对窗口的当前坐标把它移动指定的像素。

window.moveBy(x,y)

x 要把窗口右移的像素数

y 要把窗口下移的像素数

moveTo() 方法可把窗口的左上角移动到一个指定的坐标。

window.moveTo(x,y)

x 窗口新位置的 x 坐标

y 窗口新位置的 y 坐标

resizeBy() 方法用于根据指定的像素来调整窗口的大小。

resizeBy(width,height)

width 必需。要使窗口宽度增加的像素数。可以是正、负数值。

height 可选。要使窗口高度增加的像素数。可以是正、负数值。

resizeTo() 方法用于把窗口大小调整为指定的宽度和高度。

resizeTo(width,height)

width 必需。想要调整到的窗口的宽度。以像素计。

height 可选。想要调整到的窗口的高度。以像素计。

var oWin = window.open(“http://picasaWeb.google.com/isaacshun”,”_blank”,”height=300,width=400,top=30,left=40,resizable=yes”);

oWin.resize(400,300);

oWin.moveTo(100,100);

scrollBy() 方法可把内容滚动指定的像素数。

scrollBy(xnum,ynum)

xnum 必需。把文档向右滚动的像素数。

ynum 必需。把文档向下滚动的像素数。

scrollTo() 方法可把内容滚动到指定的坐标。

scrollTo(xpos,ypos)

xpos 必需。要在窗口文档显示区左上角显示的文档的 x 坐标。

ypos 必需。要在窗口文档显示区左上角显示的文档的 y 坐标。

close() 方法用于关闭浏览器窗口。

window.close()

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

setInterval(code,millisec[,”lang”])

code 必需。要调用的函数或要执行的代码串。

millisec 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。

返回值:一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。





var int = self.setInterval("clock()",50) //注意格式:clock()需带引号且带括号
function clock(){
var t = new Date()
document.getElementById("clock").value=t
}


 //经过测试:"int="是多余的语句;


setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
setTimeout(code,millisec)
code 必需。要调用的函数后要执行的 JavaScript 代码串。
millisec 必需。在执行代码前需等待的毫秒数。



function timedMsg(){
var t=setTimeout("alert('5 seconds!')",5000)
}






Click on the button above. An alert box will be displayed after 5 seconds.

clearInterval() 方法可取消由 setInterval() 设置的 timeout。

clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。

clearInterval(id_of_setinterval)

id_of_setinterval 由 setInterval() 返回的 ID 值。





var int=self.setInterval("clock()",50)
function clock(){
var t=new Date()
document.getElementById("clock").value=t
}




clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout。

clearTimeout(id_of_settimeout)

id_of_settimeout 由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。




var c=0
var t
function timedCount(){
document.getElementById('txt').value=c
c=c+1
t=setTimeout("timedCount()",1000)
}
function stopCount(){
clearTimeout(t)
}









小案例:简单计时器

第一种方法:




简单计时器

//实现简单的计时器
var i = 0;
var timer;
function start(){
i++;
//第一步:要获取到id=res这个对象
var btnObj = document.getElementById("res");
btnObj.innerHTML = "程序运行了"+i+"秒";
//使用延时器 每隔1秒后调用这个函数
timer = setTimeout("start()",1000);
}
//所谓的停止 就是用来清除延时器
function stop(){
clearTimeout(timer);
}




第二种方法:




简单计时器

var i=0
function start(){
var oBtn = document.getElementById("btn");
timer= setInterval(function(){
oBtn.innerHTML = "程序运行了"+i+"秒";
i++;
}, 1000);
}
function stop(){
clearInterval(timer);
}




更多setInterval()和setTimeout()方法使用见JavaScript|BOM对象|定时器和延时器

blur() 方法可把键盘焦点从顶层窗口移开。

window.blur()

方法 blur() 可把键盘焦点从顶层浏览器窗口移走,整个窗口由 Window 对象指定。哪个窗口最终获得键盘焦点并没有指定。

注意:在某些浏览器上,该方法可能无效。




myWindow=window.open('','','width=200,height=100')
myWindow.document.write("This is 'myWindow'")
myWindow.blur()



focus() 方法可把键盘焦点给予一个窗口。
window.focus()



myWindow=window.open('','','width=200,height=100')
myWindow.document.write("This is 'myWindow'")
myWindow.focus()


以上可以省略”window”关键字的属性和方法有:

location

navigator

screen

history

document

alert()

confirm()

prompt()

window对象常用事件

onload

onscroll

onresize

本网站每日更新互联网创业教程,一年会员只需98,全站资源免费下载点击查看会员权益

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注