Javascript操作BOM的API及小技巧相关笔记(一)

1.DOM操作表格,很少见到使用的场景,但不代表没有一点用处。
◆创建表格:var table=document.createElement("table");
◆在表格中插入行:var tr=table.insertRow(0);表示在表格的第一行之前插入一行,table.insertRow(1);表示在表格的第二行之前插入一行,如果你table.insertRow(5);然后你前面的一行不存在,那么就会无法插入而报错,因为没有第六行,所以无法进行操作,索引值0和-1是例外的,成功插入单元行之后就会返回你插入的这个单元行的元素对象。
◆在表格中的行中插入单元格:var td=tr.insertCell(0);表示在单元行的第一列之前插入一个单元格,与在表格中插入单元行的原理类似,都会返回成功插入的单元行,也会因为前面没有单元格但还强行插入时就会报错,索引值0和-1是例外的。
◆在表格中删除行:table.deleteRow(2);表示删除索引值为2的那一行,索引对应的单元行不存在的话,就会报错。
◆在单元行中删除单元格:tr.deleteCell(2);表示删除当前单元行的单元格索引为2的那一个单元格,索引对应的单元格不存在的话就会报错。
★遍历单元行中的单元格【
    //遍历表格中的行与单元格
    //外循环遍历行
    for(var i=0;i        //内循环遍历列
        for(var j=0;j            console.log(table.rows[i].cells[j]);
        }
    }




    
    操作表格







2.window对象是javascript的bom中的顶级对象,其子对象有document文档对象、frames框架对象、history历史记录对象、location地址对象、navigator导航对象、screen屏幕对象

3.window.open(url,target,各种控制窗体的参数),不常用,但是也有用,比如可以模拟a标签,让任何元素都拥有和超链接一样的页面跳转功能




    
    window对象


打开京东页面
关闭当前页面



3.location对象也是地址对象,相当于浏览器的地址栏,location对象的属性可以将url解析成各个独立的片段
 ◆href属性,表示当前页面 url地址,也能够实现超链接的页面跳转,但是只能在当前页面跳转。
◆hash属性,  表示url中#后面的内容,包含#,也就是锚点中的内容
◆host属性,表示主机域名,即主机名,包括端口
◆ hostname,表示 主机名
◆pathname ,表示url中的路径部分,即文件的目录及文件名
◆port,表示 端口号
◆protocol,表示因特网服务类型,即 协议 一般是http、https
◆search,表示url?后面跟的参数,即查询的符串
■replace(url地址),和href属性类似,能够实现超链接的页面跳转,但是只能在当前页面跳转,href改变的浏览器地址会记录到历史记录中去,而这个方法改变浏览器地址不会记录到历史记录中去。
■reload(true),也就是刷新,表示重新加载当前页面,加参数true表示始终加载服务器上的数据,不加true可能会加载浏览器缓存中的数据

■assign(url地址),就是href属性底层使用的方法,和href属性类似,也能够实现超链接的页面跳转,也还是只能在当前页面跳转,但是和href属性一样,会将重新分配后的url地址记录到历史记录中去。




    
    location对象






4.模拟超链接页面跳转的四种方式
◆window.open(url,target);可以完全实现和超链接一样的页面跳转功能,如window.open(https://www.jd.com,_black);重新打开一个窗体跳转到京东页面,如果把_black改成_self则会在当前页面跳转
◆location.href=url;重新设置当前地址栏的地址,可以模拟超链接的target属性为_self,只会在当前页面跳转,跳转的地址会被记录在历史记录中去。
◆location.replace(url);替换当前地址栏的地址,可以模拟超链接的target属性为_self,只会在当前页面跳转,跳转的地址不会被记录在历史记录中去。

◆location.assign(url);重新分配当前地址栏的地址,可以模拟超链接的可以模拟超链接的target属性为_self,只会在当前页面跳转,跳转的地址会被记录在历史记录中去,因为href属性内部调用的就是location.assign方法。


5.navigator领航或导航对象,可以获取当前客户端中信息,如navigator.userAgent可以获取当前浏览器支持的操作系统,如navigator.platform可以获取当前使用的浏览器的操作系统(不是很准)




    
    navigator对象





6.history历史记录对象,所有你访问的网站都会存在历史记录对象中,你可以通过回退或者前进来找到你上一次访问的网站或上一次的下一次访问的网站,可以通过




    
    history对象





来实现,使用go方法时可以前进或者后退多步。


7.使用窗体对象的moveTo(x,y)方法,可以实现窗体移动,如果你不断的弹出新窗体,然后再使用这个moveTo()方法,可以制造出类似满屏谈窗口的病毒出来,但是很多浏览器已经默认禁止弹窗了,所以无效,但是一些老浏览器还是可以,其实也可以使用其它方式来制作这个无限弹窗病毒,效果原理都是差不多的。




    
    使用moveTo制造弹出满屏窗口的病毒





8.定时器的使用与技巧

◆定时器的两个种类,循环定时器setInterval,炸弹定时器setTimeout,循环定时器是死循环的执行,炸弹定时器是只会执行一次,定时器的第一个参数是循环执行的功能代码块儿,第二个参数是毫秒为单位的时间, 定时器使用的方式都一样的,都会返回当前定时器的对象,也可以通过clearInterval和clearTimeout来清除当前正在执行的定时器。

◆定时器对象其实是一个number类型的。

◆使用定时器的三种方式




    
    定时器




◆炸弹定时器模拟关闭广告




    
    使用炸弹定时器关闭广告
    




我是三界至尊,我是五湖四海之王,与天同齐,与地同寿,我要见玉帝老儿,噗,被如来佛祖一掌劈死了!!!!
我是三界至尊,我是五湖四海之王,与天同齐,与地同寿,我要见玉帝老儿,噗,被如来佛祖一掌劈死了!!!!
我是三界至尊,我是五湖四海之王,与天同齐,与地同寿,我要见玉帝老儿,噗,被如来佛祖一掌劈死了!!!!
我是三界至尊,我是五湖四海之王,与天同齐,与地同寿,我要见玉帝老儿,噗,被如来佛祖一掌劈死了!!!!
我是三界至尊,我是五湖四海之王,与天同齐,与地同寿,我要见玉帝老儿,噗,被如来佛祖一掌劈死了!!!!

◆循环定时器模拟京东广告关闭




    
    模拟京东广告关闭
    



x


9.style属性其实是一个行内样式转换后的对象,它无法获取内嵌的样式表中的样式,也无法获取外链的样式表中的样式,更无法获取不在行内样式中的样式,所以,当你使用style对象操作样式属性时,一定注意,你页面标签是否有这个行内样式的属性,如果没有,你只能够给这个行内的样式属性赋值,并不能拿它参与运算的判断或者运算的赋值 +=  -=  *=  /=之类的运算。

你可能感兴趣的:(JS)