网站前端_JavaScript-BOM编程.0001.JavaScriptWindow对象

简单介绍:

说明: window对象既是Js访问浏览器窗口的接口也是Global对象的实现,也就是通过此对象访问网页中定义的任何一个对象,变量和函数,反之在全局作用域中声明的变量,函数都会变成window对象的属性和方法

框架相关:

1. 页面中每个框架都拥有自己的window对象,保存在frames集合中,所有框架页面定义的变量或函数都会自动作为对应框架window对象的成员

2. 可通过特殊全局对象获取指定框架对象,self对象始终指向当前框架对象,top对象始终指向最外层的框架,parent对象始终指向上层框架对象,页面无框架时,parent/top/self都等于window对象


// 获取当前框架对象
var topFrame = top.frames[0]
console.log(topFrame)
var topFrame = top.frames[‘header‘]
console.log(topFrame)
var topFrame = top.frames.header
console.log(topFrame)
var topFrame = self
console.log(topFrame)
topFrame.location = ‘http://www.baidu.com‘
// 获取上层框架对象
var parentFrame = self.parent
console.log(parentFrame)


案例: 具体实例可通过http://xmdevops.blog.51cto.com/11144840/1853697查看每日一题_JavaScript.利用Js操作frameset框架集对象实现购物车?

窗口位置:


// 兼容模式, 获取窗口相对于屏幕左边的位置
var leftPos = (typeof window.screenLeft == ‘number‘)?window.screenLeft:window.screenX
// 兼容模式, 获取窗口相对于屏幕上边的位置
var topPos = (typeof window.screenTop == ‘number‘)?window.screenTop:window.screenY
console.log(leftPos , topPos )


窗口大小:


// 兼容模式, 获取浏览器窗口宽度和高度
var pageWidth = window.innerWidth,
    pageHeight = window.innerHeight
if(typeof pageWidth != "number"){
    if(document.compatMode == "CSS1Compat"){
        pageWidth = document.documentElement.clientWidth;
        pageHeight = document.documentElement.clientHeight;
    }else{
        pageWidth = document.body.clientWidth;
        pageHeight = document.body.clientHeight;
    }
} 
console.log(pageWidth, pageHeight)


打开窗口:

属性名称 属性说明
closed 返回窗口是否关闭,关闭返回true,否则返回false
opener 返回打开它的原始窗口对象
方法名称 方法说明
open(url,target,features) url为要加载的URL,target为窗口目标,features为特性字符串
moveTo(x, y) 将窗口移动到横坐标为值为x,纵坐标值为y的位置
moveBy(x, y) 将窗口横坐标移动x像素,纵坐标移动y像素
resizeTo(x, y) 将窗口重置为宽度为x,高度为y
resizeBy(x, y) 同上,但是x表示与原窗口宽度之差,y表示与原窗口高度之差
close() 关闭新打开的窗口,
// 返回一个window对象,和普通的窗口对象一样
var winMax = window.open(
    ‘http://xmdevops.blog.51cto.com/‘,
    ‘xmdevops‘,    
    ‘fullscreen=yes,height=768,width=1024,left=0,location=no‘+
    ‘menubar=no,resizeable=no,scrollbars=yes,status=no,toolbar=no,top=0‘)
// 初始窗口位置
winMax.moveTo(0, 0)
winMax.moveBy(0, 0)
// 调整窗口大小
winMax.resizeTo(1360, 800)
// 向右移动40像素
winMax.moveBy(40, 0)
// 向下移动40像素
winMax.moveBy(0, 40)


说明:window.open()中参数target可以为特殊窗口名称_self,_parent,_top,_blank,也可以为frame/iframe框架,当target不存在时,会使用第三个特性参数,如上展示了所有特性参数,以逗号隔开即可

定时调用:

方法名称 方法说明
setTimeout(code, millisecond ) 超时调用,code可以为Js代码字符串也可以是函数,推荐使用函数,返回任务ID
clearTimeout(taskId) 在未超时状态取消任务队列中任务Id为taskId的任务
setInterval(code,millisecond  ) 间歇调用,code可以为Js代码字符串也可以是函数,推荐使用函数,返回任务ID
clearInterval(taskId) 在间歇状态取消任务队列中任务Id为taskId的任务
// 创建超时队列任务
var taskId = setTimeout(function(){
    alert(‘已经过了1秒‘)
}, 1000)
// 取消超时队列中指定任务
clearTimeout(taskId)
// 创建间歇队列任务
var count = 0
var max = 10
var taskId = null
taskId = setInterval(function(){
    count++
    if(count == max){
        // 取消间歇队列任务
        clearInterval(taskId)
        alert(‘Done!‘)
    }
} ,500)
// 模拟间歇队列任务
var count = 0
var max = 10
var taskId = null
setTimeout(function(){
    count++
    if(count < max){
        setTimeout(arguments.callee, 500)
    }else{
        alert(‘Done!‘)
    }
}, 500)


技巧: 使用超时调用时,没有必要跟踪超时任务ID,因为每次执行完毕后,如果不再设置超时调用,调用就会自行停止,所以使用超时调用来模拟间歇调用是一种最佳模式,所以最好不要使用间歇调用

系统弹窗:

方法名称 方法说明
alert(msg) 弹出警告框
confirm(msg) 弹出确认框,如果返回true则表示点击了确认,否则表示点击取消
prompt(msg, default) 弹出输入框,msg是要显示给用户的文本提示,default是默认值,点击确认返回输入文本域的值,否则返回null
// 确认框, OK返回true,CANEL返回false
if(confirm(‘确认要删除此记录?‘)){
    alert(‘您点击了确认‘)
}else{
    alert(‘您点击了取消‘)
}
// 输入框, 输入返回输入值,否则返回null
var name = prompt(‘请输入您的姓名?‘)
if(name){
    alert(name)
}else{
    alert(‘您点击了取消‘)
}


本文出自 “ζ自动化运维开发之路ζ” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1853778

时间: 2025-01-02 04:25:10

网站前端_JavaScript-BOM编程.0001.JavaScriptWindow对象的相关文章

网站前端_JavaScript.0001.JavaScript简单概述

简单说明: 1. JavaScript问世之前表单数据验证都是通过服务端验证,又由于拨号上网年代服务器验证非常慢,JavaScript的横空出世完美解决了此问题,完美支持客户端表单验证 2. 经过多年发展,JavaScript从一个简单的输入验证成为一门强大的面向对象,解释型,事件驱动的程序设计语言,目前主要用来验证发往服务器的数据,增加Web互动,加强用户体验度等 历史回顾: 1. 1995年网景和SUN开发出JavaScript脚本语言,微软眼红随即开发出一个JavaScript的克隆版,叫

网站前端_JavaScript.0012.JavaScript深入对象

基本类型: 说明: 基本类型变量主要在栈内存中保存变量名+变量值,变量赋值时解析器如果认定此值为基本类型,则分配固定大小的空间,基本类型包括Undefined, Null, Boolean, Number, String的字面值对象,称为基本类型对象 var name = '李满满' // 在栈内存中复制一份"李满满"给newName var newName = name newName = '刘珍珍' // 由于赋值的副本和原来的数据没半毛钱关系,所以任何一个基本类型的变量都不会改变

网站前端_JavaScript.0008.JavaScript对象数组

对象简介: 说明: 类/类型是一种数据结构,用于将数据和功能组织在一起,虽然Js是一种面向对象的语言,却不具备传统面向对象那样可以自定义类结构 对象相关: 说明: Object实例虽然不具备多少功能但对于应用程序中的存储和传输数据而言,确实是非常理想的选择 // 创建对象 //          - 第一种方式 var newObj = new Object() //          - 第二种方式 var newObj = new Object //          - 第三种方式 var

网站前端_Jquery-基础入门.0001.原生Js到后期封装库Jquery的过渡?

原生缺点: 1. JS的出现使得网页与用户之间实现了一种实时/动态/交互的关系,网页可以包含更多活跃的元素和精彩的内容 2. JS的弊端在于复杂的DOM对象,而JQuery封装了很多预定义的对象和使用函数简化了DOM操作,使得我们可以快速创建有高难度交互的富客户端页面,且兼容各大浏览器 简单介绍: 1. JQuery是一个优秀的JavaScript库,拥有强大的选择器,出色的DOM操作,可靠的事件处理,完善的兼容性和链式操作等功能,目前团队主要推核心库(JQuery)/UI(JQuery UI)

网站前端_KindEditor.基础入门.0001.KindEditor_3.4.2配置参数?

初始方式: 说明: 在快速入门中使用KE.show({ .. .})来初始化了一个编辑器,具体进入js/kindeditor.js下可以看到KE对象下的show方法先调用了KE的init方法然后又调用了其event事件对象的ready方法,内部其实是调用的KE的create方法,传递的参数为args的id属性,所以可通过2种方式来初始化编辑器 # 方式一 : # 方式二 : 注意: 无论使用哪种方式初始化编辑器,都需要传递配置对象{ ... },配置对象中id属性是必须配置的,其它的属性默认采用

网站前端_JavaScript.0011.JavaScriptFunction

函数类型: 说明: Function类型实际上是对象,每个函数都是Function类型的实例,而且都与其它引用类型一样具有属性和方法,由于函数是对象,因此函数名实际上也是一个指向函数对象的指针 //函数声明 //        - 普的函数声明 var max = function(x, y){     return x>y?1:(x==y?0:-1) } console.log(max(1, 2))           - 使用Function构造函数 var func= new Functi

网站前端_JavaScript.0013.JavaScript包装类型

简单介绍: 说明: Js提供了三个特殊的引用类型:Boolean, Number, String,当作为基本类型对象赋值给变量时,后台会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些类型的数据 // 字面量创建 var content = 'i love you!' var subContent = content.substring(2) console.log(subContent) // new String创建 var content = new String('i l

网站前端_Highcharts-数据可视.0001.玩转Highcharts之配置快速入门?

简单介绍: 说明: Highcharts(4.1.6)是国际知名的一款图表插件,完全基于JS编写实现,可以轻松构建出各种图表类型,包括折线图(Line Charts)/面积图(Area Charts)/柱状图(Column Charts)/条形图(Bar Charts)/饼图(Pie Charts)/散点图(Scatter Charts)/气泡图(Bubble Charts)/动态图(Dynamic Charts)/组合图(Combinations)/3D图(3D charts)/仪表盘(Gau

网站前端_JavaScript.0005.JavaScript运算表达

一元运算符: 1.递增++递减-- var userAge = 25 console.log(     // 25 - 保持原样     userAge,     // 26 - 在原来的基础上加1并返回     ++userAge,     // 25 - 在原来的基础上减1并返回     --userAge,     // 25 - 先返回再在原来的基础上减一     userAge++,     // 26 - 线返回再在原来的基础上减一     userAge-- ) 2.前置后置区别