一、window对象
1.全局作用域
全局变量不能通过delete操作删除,而直接在window对象上定义的属性可以

var a = 1;
delete a;
console.log(a);// window.b = 1;
delete window.b;
console.log(b);//b is not defined

2.窗口的位置

var leftPos = (typeof window.screenLeft == "number") ?
window.screenLeft : window.screenX;//非Firefox
var topPos = (typeof window.screenTop == "number") ?
window.screenTop : window.screenY;//Firefox

3.窗口的大小

if (document.compatMode == "CSS1Compat"){//标准模式
pageWidth = document.documentElement.clientWidth;
pageHeight = document.documentElement.clientHeight;
} else {//非标准模式
pageWidth = document.body.clientWidth;
pageHeight = document.body.clientHeight;
}

4.打开窗口

window.open()中的参数:

参数一:跳转的地址

参数二:是否已新窗口打开

参数三:调整弹出窗口的属性

window.open("http://www.baidu.com");
window.open("http://www.baidu.com", "_self");//自身的窗口
window.open("http://www.baidu.com", "_blank");//新窗口
window.open("http://www.baidu.com", "_blank", "height=400, width=400, top=10, left=10, resizable=yes");
//窗口大小为400px*400px,距离屏幕顶部与上部各10px,可以通过拖动窗口边框改变其大小

5.间歇调用

dow.onload = function() {
console.log(1);
setTimeout(function() {
console.log(2);
});
console.log(3);
//1, 3, 2

定时器将任务添加到任务队列,JS只有一个主线程,主线程执行完执行栈的任务后去检查异步的任务队列。如果主线程没有执行完,例进入while死循环则不会去执行任务队列

6.系统对话框

alert()、confirm()、prompt()

if(confirm("Are you sure?")) {
alert("yes");
}else {
alert("no");
}
var result = prompt("What is your name? ", "");
if(result !== null) {
alert("Welcome, " + result);
}

二、location对象

1.基本属性

2.查询字符串参数

function getQueryStringArgs(){

    var qs = (location.search.length > 0 ? location.search.substring(1) : ""),

        args = {},

        items = qs.length ? qs.split("&") : [],
item = null,
name = null,
value = null, i = 0,
len = items.length;
for (i=0; i < len; i++){
item = items[i].split("=");//items中的数以字符串的形式存在,所以可以用split
name = decodeURIComponent(item[0]);
value = decodeURIComponent(item[1]); if (name.length){
args[name] = value;
}
} return args;
}

3.位置操作

location.href = "http://www.baidu.com";//页面跳转

location.replace("http://www.baidu.com");//页面跳转,但不能后退

三、navigation对象

1.检查插件

//非IE
function hasPlugin(name){
name = name.toLowerCase();
for (var i=0; i < navigator.plugins.length; i++){
if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1){
return true;
}
} return false;
} // IE
function hasIEPlugin(name){
try {
new ActiveXObject(name);
return true;
} catch (ex){
return false;
}
} //所有浏览器查找是否有flash插件
function hasFlash(){
var result = hasPlugin("Flash");
if (!result){
result = hasIEPlugin("ShockwaveFlash.ShockwaveFlash");
}
return result;
} console.log(hasFlash());

四、history对象

1.go(): 参数的正数代表前进,负数代表后退

2.back(): 后退

3.forward(): 前进

BOM的更多相关文章

  1. HTML BOM Browser对象

    BOM:Browser Object Model,即浏览器对象模型,提供了独立于内容的.可以与浏览器窗口进行互动的对象结构. Browser对象:指BOM提供的多个对象,包括:Window.Navig ...

  2. 一步步学习javascript基础篇(7):BOM和DOM

    一.什么是BOM.什么是DOM BOM即浏览器对象模型,主要用了访问一些和网页无关的浏览器功能.如:window.location.navigator.screen.history等对象. DOM即文 ...

  3. BOM,DOM,ECMAScripts三者的关系

    一:DOM 文档对象模型(DOM)是表示文档(比如HTML和XML)和访问.操作构成文档的各种元素的应用程序接口(API) DOM是HTML与JavaScript之间沟通的桥梁.   DOM下,HTM ...

  4. javascript学习之BOM

    BOM是browser object model的缩写,简称浏览器对象模型.先看看下面这张图 window对象是BOM的顶层(核心)对象,所有对象都是通过它延伸出来的,也可以称为window的子对象. ...

  5. BOM以及定时器

    一.BOM 1.操作浏览器的一些方法 (浏览器对象模型) 2.window是is中的顶级变量,是一个全局的变量,所有人都可以访问到它,基本 的方法和属性 (document,alert,console ...

  6. js浏览器对象模型(BOM)

    浏览器对象模型(Browser Object Model,BOM):浏览器为js提供的对象集合. 1 windows对象 windows对象:表示浏览器的框架以及与其相关的内容,比如滚动条和导航栏图标 ...

  7. BOM操作

    BOM操作 //浏览器对象模型 opener=window.open(页面的url,打开方式) opener.document.body.style.background="red" ...

  8. 什么是BOM头,BOM头有什么影响,怎么去掉BOM头

    什么是bom头? 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也 ...

  9. Txt格式配置表无法解析的问题——BOM

    今天再次遇到同一个问题:策划给来一个Txt格式配置表,我用解析类去读取,返回的结果为空.解析类参数是:主键key,文件名fileName,错误提示errorTip. 写读取语句的时候,主键key我是直 ...

  10. BOM对象有哪些:

    BOM对象有哪些: 1.window对象 ,是JS的最顶层对象,其他的BOM对象都是window对象的属性: 2.document对象,文档对象: 3.location对象,浏览器当前URL信息: 4 ...

随机推荐

  1. SAP 出库单新版

    *&---------------------------------------------------------------------* *& Report  ZSDR045 ...

  2. 关于settimeout 和for循环

    for(var i=0;i<3;i++){ setTimeOut(function(){ console.log(i) },500) }; 执行结果:3,3,3 ---------------- ...

  3. 总结:在MyEclipse中部署一个wap应用时需要配置的环境变量,我的JDK是安装在C盘,mysql安装在D盘,Tomcat解压在E盘,所以路径一定要看清楚哦,!

  4. JS学习进阶中 come on!

    1,定义新的属性来扩展对象 新方法:defineProperty() 实例: var data = {}: Object.defineProperty(data,"type",{ ...

  5. 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法

    今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:ht ...

  6. linux I/O复用

    转载自:哈维.dpkirin url:http://blog.csdn.NET/zhang_shuai_2011/article/details/7675797 http://blog.csdn.Ne ...

  7. sql中NVARCHAR(MAX) 性能和占空间分析 varchar(n),nvarchar(n) 长度性能及所占空间分析

    varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 所占空间: nvar ...

  8. 与你相遇好幸运,制作自己的Yeoman Generator

    使用别人写好的生成器: npm install -g yonpm install -g generator-angularyo angular 如何自己制作符合自己心仪的生成器呢: https://g ...

  9. *****linux下redis安装

    我用的系统是:redhat [root@infa ~]# wget http://download.redis.io/releases/redis-2.8.12.tar.gz tar xzf redi ...

  10. 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】

    一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...