整理总结JavaScript常见的BOM操作

本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于bom操作的相关问题,包括了window对象的常见事件、javascript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

整理总结JavaScript常见的BOM操作

【相关推荐:javascript视频教程、web前端】

window对象的常见事件

窗口加载事件:

window.onload:页面加载事件,当文档内容完全加载完成会触发该事件(包括图像、脚本文件、CSS文件等)就调用的处理函数。document.addEventListener(‘DOMContentLoaded’, function(){}):仅当DOM加载完成,不包括样式表、图片,flash的的,兼容性

调整窗口大小的事件:

立即学习“Java免费学习笔记(深入)”;

window.onresize:调整窗口大小加载事件

window.open()方法可以用于导航到指定 URL,也可以用于打开新浏览器窗口

这个方法接收 4 个参数:要加载的 URL、目标窗口、特性字符串和表示新窗口在浏览器历史记录中是否代当前加载页面的布尔值window.open(“http://www.wrox.com/”, “wroxWindow”,”height=400,width=400,top=10,left=10,resizable=yes”);

计时器:

setInterval(handler: any, timeout?: long, arguments…: any):循环调用clearInterval(handle?: long):取消setIntervalsetTimeout(handler: any, timeout?: long, arguments…: any):一次性clearTimeout(handle?: long):取消setTimeout

window.scroll(x, y)

window.scrollTo(x, y):两者是一样的用法 改变横向和垂直的滚动条的位置,前提是必须有滚动条在页面中

window.scrollBy(x, y):滚动条的累加滚动,正数向下 ,负数向上 window.scrollBy(0, 10):每100毫秒调用一次的时候,滚动条运动10个像素

window.getComputedStyle(elem, 伪类)

对话框

alertalert(“提示字符串”)弹出一个警告框,在警告框内显示提示字符串文本confirmconfirm(“提示字符串”)显示一个确认框,在确认框内显示提示字符串当用户单击”确认”按钮返回true,单击”取消”返回falsepromptprompt(“提示字符串”,“默认值”)显示一个输入框,在输入框内显示提示字符串,等待用户输入当用户单击”确认”按钮返回用户输入,单击”取消”返回null值

JavaScript执行机制

运行js脚本,将js代码以同步执行方式放入执行栈,运行执行栈过程中遇见JS异步代码(事件、计时器、ajax、资源加载load、error)放入web APIs(任务队列),当执行栈里的代码运行完成以后,去任务队列里拿第一个进行执行,执行外以后在去任务队列拿一个过来执行,反复执行(事件循环)直到任务队列里的执行完成

location对象

window.history 用于获取当前页面的地址URL,并把浏览器重定向到新的页面

在这里插入图片描述

http://www.itcast.cn:80/index.html?name=andy&age=1#linkhttp:通信协议www.itcast.cn:域名80:端口index.html:路径?name=andy&age=1:参数#link 片段:锚点、链接

登录后复制

对象属性:

href*:获取或者设置整个URLhost:返回主机名(域名)hostname:设置或返回当前URL的主机名post:返回端口号pathname:返回路径search*:返回参数hash:返回片段(#后面的内容)protocol:设置或返回当前URL的协议

对象方法:

assign:和href一样,可以跳转页面(也称为重定向页面)replace:替换当前页面,因为不记录历史,所以不能后退页面reload:重新加载页面,相当于刷新功能

navigator对象

在这里插入图片描述
在这里插入图片描述

navigator:封装浏览器配置信息的对象

cookieEnabled 当前浏览器是否开启了cookiecookie:在客户端的存储空间,且容量较小根据不同的浏览器有不同的大小,可以做到永久保存 密匙缺点:特别容易泄露个人信息plugins 封装了浏览器安装的所有插件信息userAgent 浏览器的名称,内核 版本号 等一些列的字符onLine 电脑是否处于脱机状态 电脑联网了吗?platform 返回运行浏览器的操作系统平台appCodeName 返回浏览器的代码名appName 返回浏览器的名称appVersion 返回浏览器的平台和版本信息

history对象

window.history 对象包括浏览器的历史(url)集合

浏览器的后退功能:history.back()浏览器的向前功能:history.forward()进入历史中的某一个页面:history.go()

screen对象

window.screen 对象包含有关用户的信息
在这里插入图片描述

// screen:获得显示设备的分辨率大小// 完整的分辨率:screen.widht/height// 如何鉴别客户端的种类 兼容所有的客户端 宽度//      大屏        中屏            小屏            超小屏//      lg          md               sm             xs//      TV          pc               pad            phone//宽  >= 1200      >=992            >= 768           < 768// 全掉任务栏之后剩余的分辨率// screen.availHeight/availWidth

登录后复制可用屏幕宽度:screen.availWidth可用屏幕高度:screen.availHeight屏幕高度:screen.Height屏幕宽度:screen.Width屏幕的颜色的位数:colorDepth

元素偏移量offset系列

可以动态得到该元素的位置(偏移)、大小等

获取元素距离定位父元素的位置获取元素自身大大小ps:返回的数值不带单位

offset系列常用属性:

element.offseParent:返回作为该元素带有定位的父级元素,如果父级元素都没有定位则返回bodyelement.offsetTop*:返回元素相对带有定位父元素上方的偏移element.offsetLeft*:返回元素相对带有定位父元素左方的偏移element.offsetWidth:返回自身包括padding、边框、内容的宽度,不带单位element.offsetHeight:返回自身包括padding、边框、内容的高度,不带单位

元素可视区client系列

动态获取元素的边框大小、元素大小等

常用属性:

element.clientTop:元素上边框的大小element.clientLeft:元素左边框的大小element.clientWidth*:返回自身包括padding、内容区的宽度,不含边框,不带单位element.clientHeight*:返回自身包括padding、内容区的高度,不含边框,不带单位

元素滚动scroll系列

动态获取元素的大小、滚动距离

常用属性

element.srcollTop*:返回被卷去的上侧距离,不带单位element.srcollLeft*:返回被卷去的左侧距离,不带单位element.srcollWidth:返回自身实际的宽度,不含边框,不带单位element.srcollHeight:返回自身实际的高度,不含边框,不带单位

滚动条在滚动的时候会触发onscroll事件

查看滚动条的滚动距离

window.pageXOffset/pageYOffset IE8 及IE8以下不兼容 document.body/documentElement.scrollLeft/scrollTop兼容性比较混乱,用时取两个值相加,因为不可能存在两个值同时有值 封装兼容性方法,求滚动条滚轮滚动距离getScrollOffet()

/* 封装一个获取滚动条的滚动距离  返回:x:水平滚动条滚动的距离  y:垂直滚动条滚动的距离*/function getScrollOffet(){    if(window.pageXOffset){        return {//对象的{}一定要在关键字后,否则系统会自动加上; 则返回值会是undefined            x : window.pageXOffset,            y : window.pageYOffset        }    }else{//兼容IE8以及以下        return {            x : document.body.scrollLeft + document.documentElement.scrollLeft,            y : document.body.scrollTop + document.documentElement.scrollTop        }    }}

登录后复制

查看视口的尺寸

window.innerWidth/innerHeightIE8及IE8以下不兼容(注意:这里的宽度和高度不包括菜单栏、工具栏以及滚动条等的高度) document.documentElement.clientWidth/clientHeight标准模式下,任意浏览器都兼容 document.body.clientWidth/clientHeight适用于怪异某事下的浏览器 封装兼容性方法,返回浏览器视口尺寸getViewportOffset()

/*封装返回浏览器视口尺寸返回值:    w :视口的宽度    h : 视口的高度*/function getViewportOffset(){    if(window.innerWidth){        return {            w : window.innerWidth,            h : window.innerHeight        }    }else{ //兼容IE8以及以下的浏览器        if(document.compatMode == 'BackCompat'){            //怪异渲染模式下            return {                w : document.body.clientWidth,                h : document.body.clientHeight            }        }else{            // 标准模式            return {                w : document.documentElement.clientWidth,                h : document.documentElement.clientHeight            }        }    }}console.log(document.compatMode);// BackCompat 怪异模式// CSS1Compat 标准模式

登录后复制

查看元素的几何尺寸 ES5新增了解

domElement.getBoundingClientRect() 兼容性很好;返回一个对象,该对象中有left、top、right、bottom等属性,left、top代表元素左上角的X和Y坐标, right和bottom表示元素右下角的X和Y坐标height 和 width属性老版本IE未实现 返回的结果并不是’实时的’

// 获取元素在文档中的位置function getElementPosition(target){    // 支持 BoundingClientRect()方法    if(0 && target.getBoundingClientRect){        var pos = target.getBoundingClientRect();        return { // 涉及到滚动条有移动的情况下  加上滚动条的位置            x : pos.left + Math.max(document.body.scrollLeft, document.documentElement.scrollLeft),            y : pos.top + Math.max(document.body.scrollTop, document.documentElement.scrollTop)        }    } else {        var pos = {            left : 0,            top : 0        }        var _elm = target;        while(target.offsetParent){            if(_elm == target){//首次累加left 和 top                pos.left +=  target.offsetLeft;                pos.top += target.offsetTop;            }else{                pos.left +=  target.offsetLeft + target.clientLeft;                pos.top += target.offsetTop + target.clientTop;            }            // target 重新赋值            target = target.offsetParent;        }        return { x : pos.left, y : pos.top}    }}

登录后复制

属性

状态栏

defaultStatus 改变浏览器状态栏的默认显示status 临时改变浏览器状态的显示

窗口位置

IEscreenLeft 声明窗口的左上角的x坐标screenTop 声明窗口的左上角的y坐标document.body.screenLeftdocument.documentElement.screenLeft 声明当前文档向右滚动过的像素数document.body.screenTopdocument.documentElement.screenTop 声明当前文档向右滚动过的像素数!IEscreenX 声明窗口的左上角的x坐标screenY 声明窗口的左上角的y坐标pageXOffset 声明当前文档向右滚动过的像素数pageYOffset 声明当前文档向右滚动过的像素数FFinnerHeight 返回窗口的文档显示区的高度innerWidth 返回窗口的文档显示区的宽度outerWidth 返回窗口外部宽度outerHeight 返回窗口外部高度

其他属性

opener 可以实现同域名下跨窗体之间的通讯 一个窗体要包含另一个窗体的openerclosed 当前窗口关闭时返回truename 设置或返回窗口的名称self 返回对当前窗口的引用

【相关推荐:javascript视频教程、web前端】

以上就是整理总结JavaScript常见的BOM操作的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2700954.html

(0)
上一篇 2025年3月7日 19:11:13
下一篇 2025年2月25日 13:28:23

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript的Symbol类型、隐藏属性及全局注册表详解

    本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于symbol类型、隐藏属性及全局注册表的相关问题,包括了symbol类型的描述、symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。 【相关推荐:…

    2025年3月7日
    200
  • 解决JavaScript数据处理的5个常见问题

    本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于数据处理中常见的一些问题,包括了数据的增删改查、数据的排序、数据的去重、平级列表变成树形结构以及数组对象相同项合并处理,下面一起来看一下,希望对大家有帮助。 【相关推…

    2025年3月7日 编程技术
    200
  • JavaScript总结之18种常用数组方法

    本篇文章给大家带来了关于javascript的相关知识,其中主要总结介绍了一些常用的数组方法,整理分成了不会改变原数组的方法和会改变原数组的方法,下面一起来看一下,希望对大家有帮助。 【相关推荐:javascript视频教程、web前端】 …

    2025年3月7日 编程技术
    200
  • JavaScript隐藏机制之垃圾回收知识总结

    本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了垃圾回收的相关问题,垃圾回收是javascript的隐藏机制,下面一起来看一下,希望对大家有帮助。 【相关推荐:javascript视频教程、web前端】 一、前言 垃圾…

    2025年3月7日 编程技术
    200
  • JavaScript类数组和可迭代对象的实现原理详解

    本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于类数组和可迭代对象的实现原理,包括了把对象本身构造成迭代器、string的迭代器等等相关内容,下面一起来看一下吧,希望对大家有帮助。 【相关推荐:javascript…

    2025年3月7日 编程技术
    200
  • 一文搞定JavaScript的节点操作

    本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于节点操作的相关问题,包括了父级节点、子节点、兄弟节点、增加删除复制节点等等内容,下面一起来看一下,希望对大家有帮助。 【相关推荐:javascript视频教程、web…

    2025年3月7日 编程技术
    200
  • 11个可以提升效率的chrome调试技巧

    本篇文章给大家分享11个chrome高级调试技巧,学会效率直接提升666%,希望对小伙伴们有帮助! chrome浏览器作为前端童鞋的老婆,相信你一定不陌生。调页面、写BUG、画样式、看php片少了它整个世界都不香了。 不信?一起来看看我们的…

    2025年3月7日 编程技术
    200
  • 简单了解JavaScript数据结构与算法之栈

    本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于栈的相关问题,包括了面向过程方法源码编写栈以及用面向对象的方法来源码书写等等内容,下面一起来看一下,希望对大家有帮助。 【相关推荐:javascript视频教程、we…

    2025年3月7日
    200
  • JavaScript迭代器知识点总结

    本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于迭代器的相关问题,迭代就是指可以从一个数据集中按照一定的顺序,不断取出数据的过程,下面一起来看一下,希望对大家有帮助。 【相关推荐:javascript视频教程、we…

    2025年3月7日 编程技术
    200
  • 深入聊聊JavaScript

    本篇文章给大家带来了关于javascript的相关知识,其中主要包括了为什么需要javascript引擎、浏览器内核与js引擎的关系、环境变量与记录等等内容,下面一起来看一下,希望对大家有帮助。 【相关推荐:javascript视频教程、w…

    2025年3月7日
    200

发表回复

登录后才能评论