首页 > 编程语言 >JavaScript高级程序设计笔记12 BOM

JavaScript高级程序设计笔记12 BOM

时间:2022-10-26 12:15:50浏览次数:55  
标签:12 浏览器 URL JavaScript 像素 window BOM open location

BOM

BOM的核心——window对象

窗口和弹窗

location对象——页面信息

navigator对象——浏览器信息

history对象——浏览器历史记录

BOM是使用JavaScript开发Web应用程序的核心。提供了与网页无关的浏览器功能对象。

浏览器实现之间共通的部分成为了事实标准,为Web开发提供了浏览器间互操作的基础。

HTML5规范,涵盖了BOM的主要内容,希望将JavaScript在浏览器中最基础的部分标准化。

window对象

表示浏览器的实例。在浏览器中有两重身份:

一个是ECMAScript中的Global对象,

另一个是浏览器窗口的JavaScript接口。

因为window对象的属性在全局作用域中有效,所以很多浏览器API及相关构造函数都以window对象属性的形式暴露出来。

Global作用域

通过var声明的所有全局变量和函数都会变成window对象的属性和方法。

如果使用let或const替代var,则不会把变量添加给全局对象。

访问未声明的变量会抛出错误,但可以在window对象上查询是否存在可能未声明的变量,如:

var newValue = oldValue; // 抛出错误 ReferenceError: oldValue is not defined
var newValule = window.oldValue; // undefined

窗口关系

top对象始终指向最上层(最外层)窗口,即浏览器窗口本身。

parent对象始终指向当前窗口的父窗口。如果当前窗口是最上层窗口,则parent等于top(都等于window)。最上层的window如果不是通过window.open()打开的,那么其name属性就不会包含值。

self对象,是终极window属性,始终会指向window。实际上,self和window是同一个对象。

这可以把访问多个窗口的window对象串联起来。(嵌套iframe页面)

窗口位置与像素比

  1. 获取位置,移动位置

现代浏览器提供了screenLeft和screenTop属性,用于表示窗口相对于屏幕左侧和顶部的位置,返回值的单位是CSS像素

可以使用moveTo()和moveBy()方法移动窗口。都接收两个参数,moveTo接收要移动到的新位置的绝对坐标x和y;moveBy接收相对当前位置在两个方向上移动的像素数。

测试:FF可用——条件:通过window.open()打开,且只有一个标签页;Chrome不可用。

第一个参数,为负向左移动,为正则向右移动;第二个参数,为负向上移动,为正则向下移动。

依浏览器而定,可能会被部分或全部禁用。

  1. 像素比

不同像素密度的屏幕下就会有不同的缩放系数,以便把物理像素(屏幕实际的分辨率)转换为CSS像素(浏览器报告的虚拟分辨率)。

物理像素与CSS像素之间的转换比率由window.devicePixelRatio属性提供。

例子

标签:12,浏览器,URL,JavaScript,像素,window,BOM,open,location
From: https://www.cnblogs.com/halftonine/p/16827823.html

相关文章

  • javascript 获取本机ip chrome 谷歌浏览器 extension 谷歌扩展
    代码一:if(typeofwindow!='undefined'){varRTCPeerConnection=window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnect......
  • JavaScript对象Global
    JavaScript对象GlobalGlobal1.特点:全局对象,这个Global中封装的方法不需要对象就可以直接调用。方法名();2.方法:......
  • javascript校验mac和ip
     1.校验mac:functionisValidMAC(mac){varreg=/^[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}$/;returnreg.......
  • 案例_轮播图、BOM_Window属性
    案例_轮播图<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>轮播图</title></head><body><!--图片--><imgid="img"src="im......
  • 力扣122(java&python)-买卖股票的最佳时机 II(中等)
    题目:给你一个整数数组prices,其中 prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有一股股票。你也......
  • Linux-CentOS7 安装VMware Workstation 12
    1、下载VMware衔接地址http://www.vmware.com/products/workstation/workstation-evaluation,下载Linux版本的VMware。我下载是:VMware-Workstation-Full-12.0.0-29......
  • JavaScript对象RegExp1和JavaScript对象RegExp2
    JavaScript对象RegExp1RegExp:正则表达式对象1.正则表达式1.单个字符:[]如:[a][ab][a-zA-Z0-9_]特殊符号代表特殊含义的单个字符\d:单......
  • 12_Vue事件总结
    事件总结事件修饰符连携准备工作html<!--定义一个容器--><divclass="app"><!--事件修饰符连携--><divclass="box"@click="toBaidu"><ahre......
  • JavaScript实现 -- 顺序搜索
    顺序搜索顺序搜索是一种寻找某一特定值的搜索算法,按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止。顺序搜索是最简单的一种搜索算法。思路遍历数组,并对......
  • CF1612E(概率,独立贡献计算+枚举)
    CF1612E(概率,独立贡献计算+枚举)Problem-1612E-Codeforces题目Monocarp是\(n\)个学生的导师。现在有很多条消息,Monocarp希望第\(i\)个学生阅读编号为\(m_i\)......