8.1 window对象
BOM对象的核心是window,表示浏览器的一个实例。
在浏览器中,window既是javascript访问浏览器的一个接口,又是ECMAScript规定的global对象。
8.1.1 全局作用域
8.1.2 窗口关系和框架
如果页面中包含框架,则每个框架都有自己的window对象,保存在frames集合中。
可以通过window.frames[0]或window.frames[framesName]来引用。但最好使用top。
8.1.3 窗口位置
moveTo() 接收新位置的x和y坐标值
moveBy() 接收新位置的水平和垂直方向上移动的像素值
注:可能会被浏览器禁用
不适应框架,只能对最外层的window对象使用
8.1.4 窗口大小
//取得页面视口大小的方法 var pageWidth = window.innerWidth, pageHeight = window.innerHeight; if (typeof pageWidth != "number"){ //检查pageWidth保存的是否为数值 if (document.compatMode == "CSS1Compat"){ //如果不是,检查document.compatMode确认页面是否处于标准模式 pageWidth = document.documentElement.clientWidth; pageHeight = document.documentElement.clientHeight; } else { pageWidth = document.body.clientWidth; pageHeight = document.body.clientHeight; } } alert("Width: " + pageWidth); alert("Height: " + pageHeight);risizeTo() 接收浏览器窗口的新宽度和高度
resizeBy() 接收新窗口与原窗口的宽度和高度之差。
注:可能会被浏览器禁用
不适应框架,只能对最外层的window对象使用
8.1.5 导航和打开窗口
window.open()调用close()方法可以关闭打开的窗口
wroxWin.close()
8.1.6 间歇调用和超时调用
setTimeout()
clearTimeout()
//不要传递字符串,会影响性能 setTimeout("alert('Hello world!') ", 1000); //推荐调用方式 setTimeout(function() { alert("Hello world!"); }, 1000);
//设置超时调用 var timeoutId = setTimeout(function() { alert("Hello world!"); }, 1000); //把它取消 clearTimeout(timeoutId);
setInterval()
clearInterval()
8.1.7 系统对话框
alert() 接受一个字符串显示出来
confirm() 警告对话框,有确认取消选择
prompt() 提示框,提示用户输入文本
8.2 location对象
既是window对象的属性,也是document对象的属性 window.location==document.location
8.2.1 查询字符串参数
location.search返回从问号到url末尾的内容,不能逐个访问其中的每个查询字符串参数。
function getQueryStringArgs(){ //取得查询字符串并去掉开头的? var qs = (location.search.length > 0 ? location.search.substring(1) : ""); //保存数据的对象 var args = {}; //取得每一项 var items = qs.split("&"); var item = null, name = null, value = null; //依次将每一项添加到args对象中 for (var i=0; i < items.length; i++){ item = items[i].split("="); name = decodeURIComponent(item[0]); value = decodeURIComponent(item[1]); args[name] = value; } return args; } //假如查询字符串是 ?q=javascript&num=10 var args = getQueryStringArgs(); alert(args["q"]); //"javascript" alert(args["num"]); //"10"
8.2.2 位置操作
一般使用location.href()
但是通过location.href会是浏览器中生成一条新记录,因此用户单击“后退”按钮都会导航到前一个页面,要禁用这种行为,可以使用location.replace方法。
location.reload(); //重新加载(有可能从缓存中加载)
location.reload(true); //重新加载(从服务器重新加载);
最好将reload()放在代码的最后一行
8.3 navigator对象
识别客户端的事实标准
8.3.1 检测插件
非ie用plugins数组,包含的属性
name:插件名
description: 插件描述
filename: 插件的文件名
length: 插件所处理的MIME类型数量
//检测插件,在ie中无效 function hasPlugin(name){ //要检查的插件名 name = name.toLowerCase(); //将传入的名称转换为小写,方便比较 for (var i=0; i < navigator.plugins.length; i++){//迭代plugins数组 if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1){ //通过indexOf()检测每个name属性,以确认传入的name是否出现在字符串的某个地方避免混淆 return true; } } return false; } //检测 flash alert(hasPlugin("Flash")); //检测 quicktime alert(hasPlugin("QuickTime")); //检测 Java alert(hasPlugin("Java"));
//检测ie中的插件 function hasIEPlugin(name){ try { new ActiveXObject(name); return true; } catch (ex){ return false; } } //检测 flash alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash")); //检测 quicktime alert(hasIEPlugin("QuickTime.QuickTime"));针对每个插件分别创建检测函数
相关推荐
在深入探讨JavaScript编程语言之前,...在《JavaScript高级程序设计》这本书中,作者深入探讨了这些概念,并提供了一系列实用的编程技巧和最佳实践,这对于任何希望深化JavaScript知识的开发者来说都是一份宝贵的资源。
JavaScript程序设计的基础篇涵盖了编程语言的基本概念和基础知识,这些概念和知识是进一步学习JavaScript深入内容的前提和基础。了解和掌握这些知识点,对于前端开发工程师的学习和工作至关重要。随着前端技术的不断...
### JavaScript 学习笔记1:数组、DOM与BOM简要总结 #### 数组方法概述 在JavaScript中,数组是一种非常重要的数据结构,用于存储多个值。数组对象提供了多种方法来帮助我们操作数组中的元素。 - **pop()**:从...
JavaScript,作为一种广泛应用于网页和网络应用的...通过学习《JavaScript高级程序设计(第3版)》这样的专业书籍,不仅可以系统地梳理JavaScript的基础,还能了解到一些高级用法和最佳实践,对提升编程技能大有裨益。
它由网景公司的Brendan Eich在1995年发明,最初设计目的是增强网页的交互性,验证表单数据。JavaScript的运行环境是浏览器,它不需要预编译,而是由浏览器实时解析执行。 JavaScript的核心是ECMAScript,它定义了...
ECMAScript 5(简称ES5)是ECMAScript的一个重要版本,带来了许多新特性,这些新特性在《JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性》中被详细讨论。 ES5相对于之前版本,如ECMAScript 3(简称...
JavaScript是Web开发中的核心语言,尤其对于前端开发者来说至关重要。《JavaScript高级程序设计》第三版是...在《JavaScript高级程序设计》第三版的学习过程中,结合实际项目练习,将有助于更好地理解和掌握这些概念。
学习JavaScript对象时,可以参考的对象模型有几种,包括ECMAScript规范、BOM(浏览器对象模型)和DOM(文档对象模型)。ECMAScript定义了语言的基础,而BOM和DOM提供了与浏览器交互和操作网页内容的接口。在使用...
JavaScript代码不需要预编译,由浏览器中的JavaScript引擎即时解释执行,这使得它易于学习和使用,但同时也意味着它的运行速度相对较慢。 JavaScript的主要内容涵盖了ECMAScript规范、DOM(文档对象模型)用于操作...
Java私人学习笔记主要涵盖了Java编程语言以及与其相关的几个著名框架——Spring、Struts2和Hibernate,还有前端开发中常用的JavaScript。这些技术在IT行业中的应用广泛,是许多企业级应用开发的基础。以下是对这些...
JavaScript(简称JS)是一种轻量级的解释型编程语言,主要用于客户端的Web开发,赋予网页动态功能。JS不仅用于网页,还广泛应用于网页游戏、地图搜索、股市信息查询以及各种Web聊天应用等场景。它是许多前端框架,如...
- **现代阶段**:高级语言出现,如JavaScript,它们接近自然语言,易于理解和编写。 #### 二、JavaScript起源与简史 - **起源**:JavaScript诞生于1995年,最初是为了网页前端验证而设计的。它可以用来检查用户的...
5. **浏览器对象模型**:BOM(Browser Object Model)提供了对浏览器窗口、历史、导航等的访问,允许JavaScript操作浏览器功能。 6. **ES6及更高版本**:ECMAScript的新特性,如let/const声明、箭头函数、模板字符...
《Web宝典》是一份详尽的IT学习资料,涵盖了HTML、CSS、JavaScript等核心Web开发技术,以及Bootstrap、BOM、DOM、Ajax、Node.js和微信小程序等多个方面。这份笔记整理旨在帮助初学者快速掌握Web开发的基础知识,并...
JavaScript,简称JS,是一种广泛应用于Web开发的高级编程语言,主要负责网页的动态...了解这些基本概念是学习JavaScript的基础,通过不断的实践和深入学习,开发者可以构建出复杂的Web应用程序,提供丰富的用户体验。
### JavaScript基础及高级知识点...这些内容不仅涵盖了JavaScript的基础语法和内置对象,还包括了BOM、DOM以及事件处理等高级主题。对于初学者来说,掌握这些核心概念对于后续学习JavaScript及其相关框架具有重要意义。
#### 二、JavaScript程序设计 JavaScript是实现网页交互的核心语言,本节内容涉及: 1. **JavaScript介绍**:简述JavaScript的发展历程及其在现代网页开发中的地位。 2. **调试器**:介绍如何使用浏览器提供的...