继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

javascript--DOM概念

android开发学习视频
关注TA
已关注
手记 304
粉丝 52
获赞 322

unknow-80.png BOM概念

BOM : Browser Object Model 浏览器对象模型,描述与浏览器进行交互的方法和接 口, ECMAscript是javascript的核心,但如果要在web中使用javascript,那么 BOM则无疑才是真正的核心。

BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。

由于浏览器提供商会按照各自的想法随意去扩展它,使得BOM缺乏一定的规范,于是 浏览器之间共有的对象成为了事实上的标准。


unknow-80.png window对象介绍

BOM 的核心对象是 window ,它表示浏览器的一个实例。在浏览器中, window对象有双 重角色,它既是通过 JavaScript 访问浏览器窗口的一个接口,又是ECMAScript 规定的   全局(global)对象。这意味着在网页中定义的任何一个对象、变量和函数,都以 window 作 为其Global 对象,因此有权访问parseInt()等方法。

unknow-80.png 与document的关系(扩展)

当浏览器下载到一个网页,通常是 HTML,这个HTML就叫 document(当然,这也是DOM   树中的一个 node),document通常是整个DOM 树的根节点。这个 document 包含了标 题(document.title)、URL(document.URL)、(document.body)等属性,可以直接在 JS 中 访问到。

DOM 是为了操作文档出现的 API,document 是其的一个对象;

BOM 是为了操作浏览器出现的 API,window 是其的一个对象。

unknow-80.png window内置对象(location/history/navigator)及方法

location对象

n href属性  控制浏览器地址栏的内容

n reload()方法   刷新页面

unknow-80.png /*setInterval(function(){

unknow-80.png   location.reload();//每隔两秒自动刷新页面。

n  },2000);* /

n reload(true)   刷新页面,不使用缓存 ( 类似于重新打开 )

history对象

history对象是window对象的属性

浏览者通常可以使用浏览器的前进与后退按钮访问曾经浏览过的页面。JavaScript的history对象记录了用户曾经浏览过的页面,并可以实现浏览器前进与后退相似的导航功能

可以通过back函数后退一个页面,forward函数前进一个页面,或者使用go函数任意后退或前进页面,还可以通过length属性查看history对象中存储的页面数

由于安全的原因,不能显示history对象中的历史页面URL

如果一个窗体没有被用户浏览过任何页面(也就是一个新建的窗体),其history对象缓存的URL为空,无法使用相关函数导航

JavaScript history.go() 函数 -- 前进或后退指定的页面数

JavaScript history.back() 函数 -- 后退一页

JavaScript history.forward() 函数 -- 前进一页

JavaScript history.length 属性 -- history对象中缓存了多少个URL

 

navigator对象--了解

n appName  浏览器名称

n appVersion  浏览器版本

n platform操作系统

最新的浏览器已经全面放弃以上这些属性

n userAgent  用户代理信息,通过该属性可以获取浏览器及操作系统信息

unknow-80.png onload事件:页面内容加载完成(DOM结构,图片.....)

unknow-80.png /location.href='http://www.baidu.com';//设置跳转的地址

unknow-80.png     location.href='02 success.html';

unknow-80.png onscroll事件:拖动浏览器的滚动条触发此事件。

unknow-80.png onresize事件:浏览器窗口缩放所触发的事件。

unknow-80.png open() 和 close() 方法--打开一个页面/关闭一个页面

unknow-80.png alert() prompt() confirm()浏览器事件

unknow-80.png 定时器

n setInterval(函数名称,时间);间隔定时器(反复调用)

clearInterval( 定时器的返回值 );  停止定时器

n setTimeout(函数名称,时间); 延时定时器

clearTimeout( 定时器的返回值 ); 停止定时器

unknow-80.png DOM的概念及作用

DOM是”Document Object Model”的首字母缩写,即文档对象模型。用来描绘一 个层次化的节点树,允许开发人员添加、移除和修改页面的某一部分。浏览器支持情况:不友好,有兼容问题 


unknow-80.png DOM的基本操作(查询、修改、创建、删除)

unknow-80.png //aInput[0].value文本框的内容

unknow-80.png    var cLi=document.createElement('li');

unknow-80.png    var cText=document.createTextNode(aInput[0].value);//将文本框内容,创建出来,赋值给cLi

unknow-80.png    cLi.appendChild(cText);

unknow-80.png    oUl.appendChild(cLi);

unknow-80.png    aInput[0].value='';//清空

unknow-80.png    aInput[0].focus();//文本框得到焦点

n getElementById() 获取特定 ID 元素的节点

n getElementsByTagName() 获取相同元素的节点列表,返回类数组,使用[0]来获取

n getElementsByClassName() 获取相同类名的节点列表(IE8及以下不支持)

n getElementsByName() 获取相同类名的节点列表,不是所有标签都有name属性。

n createElement() 创建一个元素节点

n createTextNode()  创建一个文本节点

n obj.appendChild(node)  把node节点插入到box的内部最后的位置

n box.insertBefore(newNode, existNode)  把newNode节点插入到exsitNode的前面

n box.removeChild(node)  删除阶段

n obj.cloneNode() 复制节点,复制obj元素标签,可以传一个布尔值为参数,如果参数为true,连同obj子元素一起复制。如果为空(false)复制obj节点。

n obj.replaceChild(新添加的节点(替换),被替换的节点);

unknow-80.png DOM元素类型(元素和文本)

n 节点可以分为元素节点、属性节点和文本节点...,而这些节点又有三个非常有用的属性 ,分别为:nodeName、nodeType 和 nodeValue(文本)

n //var cloneUl=oUl.cloneNode();//克隆ul节点,追加

n    //var cloneUl=oUl.cloneNode(true);//参数true,克隆ul节点以及ul子节点,追加

n    //document.body.appendChild(cloneUl);

n    //obj.replaceChild(新添加的节点,被替换的节点);

n    //var oDiv=document.createElement('div');//创建div节点

n    //document.body.replaceChild(oDiv,oUl);//用创建的节点替换ul节点                replace替换字符串  string.replace("tmd", "*");

n                   /*var str='tmdtmdtmdtmdtmdtmd';

n        alert(str.replace('tmd','*'));*/

n   /*var str='tmdtmdtmdtmdtmdtmd';

n   alert(str.replace(/tmd/g,'*'));//正则*/

n

n    //DOM元素类型(元素,属性,文本)

n    //nodeName、nodeType 和 nodeValue

n    //alert(oUl.nodeType);//1 : 代表是元素节点。

n nodeType:元素(1)     属性(2)     文本(3)

n //alert(document.body);//获取body元素

n    //document.title='我是标题';

n    //alert(document.documentElement);//获取html标签

n   

n    /*alert(document.documentElement.clientWidth);//可视区的宽度

n    alert(document.documentElement.clientHeight);//可视区的高度*/

n    //四个属性:offsetLeft/offsetTop/offsetWidth/offsetHeight  没有单位

n    //alert(oBox.offsetWidth);获取盒子对应的宽度(盒模型:width+border+padding)

n    var scrolltop=document.documentElement.scrollTop || document.body.scrollTop;

获取非行内样式(兼容问题)


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP