这是第八章到第十二章的内容,粗略浏览过一遍.

一、BOM

  浏览器对象模型。包括了window、location、navigator、screen和history对象。

    window:核心对象

1、JS访问浏览器窗口的一个借口

2、全局作用域Global对象,所有在全局作用域中生命的变量,函数都会变成window对象的属性和方法。(全局变量不能通过delete删除,而window对象),如果页面中包含框架,并且保存在frames集合中。在frames集合中,可以通过数值索引(从0开始,从左至右,从上到下)或者框架名称来访问响应的window对象。

框架页面中通过top.frames[i]访问window对象。

  窗口位置:

var topPos=(typeof window.screenTop==’number’)?window.screenTop:windw.screenY;
var leftPos=(typeof window.screenTop==’number’)?window.screenTop:windw.screenY;

  打开窗口:

window.open()4个参数:需要加载的URL、窗口目标、一个特性字符串以及一个表示新页面是否取代浏览器

  移动窗口:

moveTo(x,y)窗口移动到新的(x,y)坐标值,moveBy(x,y)在水平和垂直方向上移动的像素数

  

间歇调用和超时调用

  超时调用:var id=setTimeout(function(){},1000);

clearTimeout(id)超时调用函数返回一个数值id,可以通过它来取消超时调用计划

  间歇调用:setInterval()

  系统对话框:

  alert()

  confirm(’Are u sure?’)

  prompt()比confirm增加一个文本输入域,第二个参数可表示默认值,单击ok返回文本域的值,其他返回null

      location对象 

保存着当前文档的信息,将URL解析为独立的片段(hash.host,href…)

  1查询字符串参数

  2位置操作:location.href=”http”//...”可以修改hash,search,hostname,pathname和port属性设置为新值来改变URL,这种方法会在浏览器历史记录中生成一条新记录,因此用户可以点击后退按钮导航到前一个页面,而replace()方法无法返回

  Location.reload()重新加载,有可能从缓存中加载

  Location.reload(true); 重新加载,从服务器

     Navigator对象

用于检测显示网页的浏览器类型,Plugins属性,安装插件信息的数组

    Hittory对象

客户端检测  

  先设计最通用的方法然后再使用特定于浏览器的技术,增强该方案。

  能力检测—>识别浏览器的能力à保证代码最优化

  怪癖检测:识别浏览器的特殊行为

  用户代理检测

DOM:

  文件对象模型,针对HTML XML

  1、节点层次

    DOM可以将任何HTML或XML文档描绘成一个由多层节点构成的结构。节点分为几种不同的类型。每种类型分别表示文档中不同的信息及标记。每个节点都有各自的特点、数据和方法,另外也与其他节点存在某种关系。节点中间的关系构成了层次,而所有页面标记则标为一个以特定节点为根节点的树形结构。

  节点关系:每个节点都有个childNodes属性,其中保存着一个NodeList对象。

  

Node类型

操作节点 appendChild()向chiedNodes列表末尾添加一个节点

 insertBefore()插入节点

    replaceChild(a,b)a要替换成为a,b被替换的子节点

    removeChild 移除子节点

    复制: cloneNode(true)深复制false只复制本身

Document.anchors(所有带name的a元素

<a></a>)/forms(<forms></>)/images/links所有带href的a元素

文档写入

将输出流写入到玩各种 write() writeln() open() close()

DOM拓展

QuerySelector()返回第一个 querySelectorAll()所有

HTML5

1   getElementsByClassName()

  add(value),

  contains(val),

  remove(val),

  toggle(val)如果列表中已经存在给定的值删除它,如果无,添加它

自定义数据属性 <div id=’’,data-appid=’1234’></div> 添加data-前缀

标记属性:innerHTML/outerHTML

      InsertAdjacentHTML() 两个参数,第一个是插入位置,第二个插入html文本

    Para1 :beforebegin 在当前元素之前插入一个紧邻的同辈元素

     afterbegin 在当前元素之下插入一个新的子元素或则在第一个子元素之前再插入一个新的子元素

      beforeend 在当前元素之下插入一个新的子元素或在最后一个子元素之后插入新的子元素

     afterend在当前元素之后插入一个紧邻的同辈元素

scroolIntoView()通过滚动浏览器窗口或者某个容器元素,调用元素就可以出现在视口中

文档模式<meta>

       插入文本 innerText  div.innerText=’sdsd’;

  

JS之BOM、客户端检测和DOM的更多相关文章

  1. 读书时间《JavaScript高级程序设计》四:BOM,客户端检测

    隔了一段时间,现在开始看第8章. 第8章:BOM BOM提供了很多对象,用于访问浏览器的功能.BOM的核心对象是window,它表示浏览器的一个实例. window对象是通过javascript访问浏 ...

  2. js,bom,dom(相信我,你看不懂我写的)

    js dom bom 2种结合方式: 1.在body中加入script标签,<script type="text/javascript" >alert(" 向 ...

  3. [Javascript]客户端检测

    客户端检测是一种行之有效的开发策略.但不到万不得已,就不要使用客户端检测.先设计通用的方案,然后根据浏览器之间的差异和各自的怪癖quirky,再使用特定于浏览器的技术增强该方案. 能力检测 Featu ...

  4. Javascript高级程序设计——客户端检测

    ECMAScript虽然是Javascript的核心,但是要在web中使用Javascript,那么BOM才是核心,BOM为我们提供了操作访问浏览器对象的借口, 但是由于BOM没有标准规范,导致存在不 ...

  5. JavaScript基础16——js的BOM对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. 检测一个DOM对象是否为空

    我们时常要检测一个DOM对象是否为空. var $jObject = $('#btn'); alert($jObject ); 我们会发现,$jObject 永远不会为空.为什么呢?$ 方法查找对象, ...

  7. Javascript高级编程学习笔记(34)—— 客户端检测(3)用户代理检测

    用户代理检测 前面的文章介绍的是如何检测浏览器对某一功能的支持情况 但是在实践中我们有些时候免不了需要知道用户到底是用的什么浏览器对我们的站点进行访问 这也是统计用户行为的一部分 用户代理检测这种方式 ...

  8. 【转】从Vue.js源码看异步更新DOM策略及nextTick

    在使用vue.js的时候,有时候因为一些特定的业务场景,不得不去操作DOM,比如这样: <template> <div> <div ref="test" ...

  9. Atitit.android js 的键盘按键检测Back键Home键和Menu键事件

    Atitit.android js 的键盘按键检测Back键Home键和Menu键事件 1. onKeyDown @Override public boolean onKeyDown(int keyC ...

随机推荐

  1. xcode-git笔记

    git initgit add .vi .gitignore /*将代码区蓝色字体的内容*/git commit -m "初次建立"git remote add origin ht ...

  2. loadrunner录制脚本如何选择使用get请求和post请求的方式

    在loadrunner工具里录制脚本时常常会用到get请求和post请求,有关loadrunner常用的这两类的请求主要有: get请求: web_url 和 web_link post请求: web ...

  3. xampp 配置虚拟主机

    1.安装好xampp后 2.找到安装目录 apache目录--conf目录--extra目录--httpd-vhosts.conf文件(用记事本或者别的编辑器打开) 文件最后添加代码 <Virt ...

  4. your PC ran into a problem and needs to restart system_thrread_exception_not_handled

  5. android开发--下载图片

    1.背景介绍 网络上图片的请求,是我们最常见的网络请求之一,不亚于对json/xml数据的请求.一般要展示给用户看的,都不会是纯粹的文字,往往都是图文信息.而在移动互联网时代,图文又往往需要最新的资讯 ...

  6. lua弱表引用

    1.普通垃圾回收 --lua弱表,主要是删除key或者value是table的一种元方法 --元表里的__mode字段包含k或者v:k表示key为弱引用:v表示value为弱引用 local test ...

  7. 关于数组Arry的一些基本认识

    认识数组主要从以下几个方面去认识,一:数组具备什么样的特性,二:它能做什么,三:它具备哪些常用的api方法 //数组的原始表示方式 /* 数组的特性:1有长度,2以0开头 */ var arr1 = ...

  8. 答:SQLServer DBA 三十问之五:有关视图索引

    5. 视图上我们能建索引吗,如果能建的话,会啥好处和坏处:视图上建索引和表上建索引有啥区别: ----------------------------------------------------- ...

  9. SpringMVC学习笔记(六)

    一.SpringMVC文件的上传 1.1.需要导入两个jar包 1.2在SpringMVC配置文件中加入 <!-- upload settings --> <bean id=&quo ...

  10. 《CoffeeScript应用开发》学习: 第四章-改进应用程序

    检查值是否存在 使用存在运算符 CoffeeScript中有一个非常有用的存在运算符?,它能正确地处理值是否存在(存在的意思为变量不为undefined或者null)的情况.在变量后添加?来判断它是否 ...