/*
* bom:
* 提供了浏览器接口;
* w3c为了把javascript最基本的只是标准化已经将bom的主要方面纳入html5规范*/
console.log(window);
!(function (window) {
/*自执行函数初始化变量不会给window添加属性
* 因为这是局部变量是私有的
* 虽然这里面的this指向window*/
var age = 19; function fn() {
console.log(this.age); } console.log(age, this.age, window.age);//19,undefined;undefined
fn() })(window) console.log(top, parent);//这两个对象再ongoing框架时有特殊的含义没有框架时就是window !(function () {
/*窗口位置*///获取的数值为number
// 相对于屏幕左上位置
/*screenLeft screenX
* screenTop screenY * */ window.onclick = function (event) {
console.log(event.screenX)
/*下面是兼容写法*/
var leftPos = typeof event.screenX === 'number' ? event.screenX : event.screenLeft;
var topPos = typeof event.screenY === 'number' ? event.screenY : event.screentop; }
console.log(window.screenLeft || window.scrollX);
/*浏览器相对于庄口左上的距离。*/ /*moveTo()将浏览器窗口移动到么某个位置哦===(这两个方法被很多浏览器禁用了那你还讲个毛)*/
window.moveTo(0, 0);
window.moveBy(0, 0);
})()
!(function () {
/*窗口大小(视口大小)*/
// 兼容性好多
/*
* innerHeight outerHeight ie9+
*
* document
*
*
*
*
* */
console.log(document.documentElement.clientHeight || document.body.clientHeight); //
// console.log(document.body.clientHeight);//谷歌中不可以用(但是其混杂模式可以用)火狐也不可用(混杂模式可以)
/*resizeTo() resizeBy() 调整屏幕宽高 但已经禁用了*/
})()
!(function () {
/*导航与打开窗口*/
// window.open('url', '框架名(此参数不是必须)'); window.onclick = function () {
var win = window.open('http://www.baidu.com', 'sss', 'height=400,width=400,left=500,top=400');
win.resizeTo(1000, 100);//改变窗口大小
win.moveTo(1000, 100);//改变窗口位置
setTimeout(function () {
win.close();//关闭弹出的框架 主页面框架是不可用代码关闭的
}, 3000)
// window.close()
} })() !(function () {
// 间歇调用与超时调用
// setInterval()
// setTimeout()
// clearInterval()
// clearTimeout()
})()
   !(function () {
/*系统对话框
* 这些对话框是同步与模态的 弹出时代码会停止执行 关闭时代码恢复执行
* alert()
* confirm() 返回值为布尔值
* prompt()
* */
/*var result = confirm('chichihci');
console.log(result);*/
var aa=prompt('3123'); //点击取消返回值为null 点击确定返回值为输入值
console.log(aa); /*谷歌浏览器特有*/
// window.print('print');
window.find('find')
})()
 /*location 是BOM最有用的对象之一
* 它提供了与当前文档相关得到信息
* 还提供了一些导航功能
* ( 它既是window的属性又是document的属性)
* *
*
* */
console.log(window.location);
console.log(document.location);
console.log("hash值" + location.hash);//会生成历史记录
console.log("服务器名称与端口号" + location.host);
console.log("不带端口号的服务器名称" + location.hostname);
console.log("完整url" + location.href);//location.toString() 也返回这个值
console.log("url目录与文件名" + location.pathname);
console.log("端口" + location.port);
console.log("页面使用的协议" + location.protocol);
console.log("url查询的字符串" + location.search); /*将location.search转化为对象*/
function getdata() {
var qs = location.search.length > 0 ? location.search.substring(1) : '';
args = {};
var items = qs.length ? qs.split('&') : [];
items.map(function (k, v, ele) {
console.log(k);
var a = k.split('=');
// console.log(a);
args[a[0]] = a[1]
});
console.log(args) }
getdata() /*位置操作*/
// location.assign('http://www.baidu.com');
/*location.href='url' 与 window.location=' url' 也会以URL调用location.href的属性
*
* */
// location.replace('http://www.baidu.com');//这种跳转是没有返回的
setTimeout(function () {
location.reload();//页面刷新 (有可能从缓存中获取)
// location.reload(true); 页面刷新 从服务器获取
},3000)
  /*navigation
* 识别客户端浏览器的事实标准
*
*
* */
console.log(navigator)
console.log(navigator.userAgent);//可以用来检测设备类型
console.log(navigator.plugins);//可以用来检测有哪些插件
 /*
*screen 基本上是来表明客户端的能力包括(不同浏览器支持的属性不一致)
* 显示器信息
* 像素宽高
*
* */
console.log(screen)
   /*history
用来保存用户的上网历史记录
history.go()
*
* */
console.log(history.length);//存在历史记录的数量
document.querySelector('.go1').onclick = function () {
// history.go(1);//前进
history.forward();//前进 document.querySelector('.go2').onclick = function () {
// history.go(-1)//后退
history.back();//后退
}
}

第八章:BOM的更多相关文章

  1. js高级程序设计第八章BOM(未完成,待续)

    8.1window对象 BOM的核心对象是window,表示浏览器的一个实例. window对象有双重角色,既可以通过就是访问浏览器窗口的接口,又是ECMAscript规定的Global对象   8. ...

  2. 第八章—BOM(一)

    ECMAscript是JS的核心,而要在web上使用JS,那么BOM无疑是真正的核心.BOM叫浏览器对象模型,它提供了许多对象,用于访问浏览器的功能. BOM的核心对象是window,它表示浏览器的一 ...

  3. 读书笔记 - js高级程序设计 - 第八章 BOM

      BOM的核心对象是window 它表示浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过js访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象,这意味着在网 ...

  4. JavaScript高级程序设计学习笔记第八章--BOM

    1.间歇调用和超时调用: 超时调用:需要使用 window 对象的 setTimeout()方法,它接受两个参数:要执行的代码和以毫秒表示的时间(即在执行代码前需要等待多少毫秒).其中,第一个参数可以 ...

  5. 第8章BOM笔记

    第八章 BOM 一. Window 在浏览器中window有双重角色,他既是JavaScript访问浏览器窗口的一个借口,又是ECMAscript 规定的Global对象. 1.全局作用域 由于win ...

  6. 《JavaScript高级程序设计》笔记整理

    欢迎各位指导与讨论 : ) -------------------------待续------------------------------- 本文为笔者在学习时整理的笔记,如有错漏,恳请各位指出, ...

  7. js-JavaScript高级程序设计学习笔记6

    第八章 BOM 1.BOM的核心对象是window,他表示浏览器的一个实例.在浏览器中,window对象有双重角色,它既是通过JS访问浏览器窗口的一个接口,又是ES规定的Global对象. 2.定义全 ...

  8. JavaScript高级程序设计 读书笔记

    第一章 JavaScript 简介 第二章 Html中使用JavaScript 第三章 基本概念 第四章 变量,作用域,内存 第五章 引用类型 第六章 面向对象 第七章 函数表达式 第八章 BOM 第 ...

  9. 《JavaScript高级程序设计》 阅读计划

    第一周       第1章 JavaScript简介   1 第2章 在Html中使用JavaScript 1 第3章 基本概念   3         第二周       第4章 变量.作用域和内存 ...

  10. javaScript高程第三版读书笔记

    看完<dom编程艺术>现在准备读进阶版的js高程了,由于篇幅较长,所以利用刚看完<dom编程艺术>学到的知识写了段JavaScript代码,来折叠各章的内容.并且应用到了< ...

随机推荐

  1. 安装了多个php版本,如何编译扩展

    cd /data/php-5.5.35/ext/mysqli  找到安装包目录下面的ext目录 ./configure --with-php-config=/usr/local/php5/bin/ph ...

  2. boost::thread 库的使用

    转载自:http://blog.csdn.net/yockie/article/details/9181939 概要 通过实例介绍boost thread的使用方式,本文主要由线程启动.Interru ...

  3. poj3420 Quad Tiling

    传送门 题目大意 问讲一个大小为4*n的棋盘用无数1*2的骨牌不重叠覆盖有多少种方案. 分析 我们考虑可以将长为n的棋盘分为两块,一个大小为n-i,另一个大小为i,而为了避免对于不同的i构造出相同的情 ...

  4. 3.3PCL已有点类型介绍和增加自定义的点类型

    1.PCL中有哪些可用的PointT类型 这些point类型都位于point_types.hpp文件中,如果用户需要自己定义类型,需要对已有类型了解. 1)PointXYZ---成员变量:float ...

  5. 数据结构_find_lucky_number(寻找幸运值)

    数据结构_find_lucky_number(寻找幸运值) 问题描述 给出两个已按升序排列的数组 a[1..n],b[1..m],如果存在 i,j,使得a[i]+b[j]==k,我们便说已找到幸运值. ...

  6. libtool的工作原理

    libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一.可移植的接口中:使用libtool的标准方法,可以在不同平台上创建并调用动态库.可以认为libtool是gcc的一个抽象,其包装了 ...

  7. Java50道经典习题-程序50 文件IO

    题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中. impo ...

  8. 国外物联网平台(3):IBM Watson IoT

    国外物联网平台(3)——IBM Watson IoT 马智 平台定位 提供全面管理的云托管服务,旨在简化并从 IoT 设备中获得价值. Watson IoT Platform 提供对 IoT 设备和数 ...

  9. 答C++复杂多余者之惑

    C和C++有太多的历史包袱而其它语言并没有这些,从另一个角度下来讲C和C++其实就是现代语言的活字典,也是现代软件设计的基础,当然有更古老的语言,但像C和C++影响力这么大的却无其它语言可以出其左右. ...

  10. [Windows] 程序生成出现语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符”

    程序生成出现语法错误: 意外的令牌“标识符”,预期的令牌为“类型说明符” 将平台工具集改为VS 2015 (v140) ,重新编译即可