【JavaScript高级程序设计】第8章(浏览器对象模型BOM)

8. BOM

五大BOM对象:

  1. window
  2. location
  3. screen
  4. history
  5. navigator

8.1 window对象

  • BOM的核心对象就是window
    • JavaScript访问浏览器窗口的一个接口
    • ECMAScript规定的Global对象
  • 全局作用域中定义的变量和函数都会成为window对象的属性和方法
    • 删除问题
      • var定义全局变量不能通过delete操作符删除
      • 而直接在window对象上定义的属性可以
      • 因为var添加的window属性的[[configurable]]特性的值为false
    • 未定义问题
      • 如果一个变量未定义,全局访问会报错
      • 如果以window属性访问则返回undefined
var name = "hello world";
window.anotherName = "hello javascript";
delete window.name; // false 无法删除
delete window.anotherName; // true

console.log(anyWord); // not defined
console.log(window.anyWord); // undefined
  • 窗口位置
    • screenTop & screenLeft
  • 窗口大小
    • innerWidth,innerHeight & outerWidth, outerHeight
    • clientHeight, clientWidth
  • 导航和打开窗口
    • window.open(url)
    • 第二个参数可以是窗口或框架名
      • _self, _parent, _top, _blank
    • 第三个参数是逗号分隔的名值对儿
      • "height=400,width=400,top=100,left=100,resizable=yes"
  • 间歇调用和超时调用
    • setTimeout
    • setInterval
    • 接收要执行的字符串,在全局作用域中执行
  • 系统对话框
    • alert
    • confirm
    • prompt
    • find
    • print

8.2 location对象

  • location对象
    • window.location和document.location引用的是同一个对象
    • hash
    • host
    • href
    • pathname
    • hostname
    • port
    • protocol
    • search
      • “?language=javascript&number=4” 解析url字符串得到参数
  • 位置操作
    • window.location = 'http://www.baidu.com' 赋值字符串,返回对象,神奇!
    • window.location.href = "http://www.baidu.com"
    • 每次修改location的属性(除hansh外),页面都会重新加载URL
    • 浏览器会计入历史记录
    • replace不会记入历史记录
    • reload重新加载当前页面
      • reload()从缓存加载reload(true)从服务器重新加载

8.3 navigator对象

  • navigator对象
    • 浏览器、电脑、cpu等客户端信息
    • 插件 plugins
    • 注册处理程序 registerContentHandler

8.4 screen对象

  • screen对象
    • availHeight

8.5 history对象

  • history对象
    • history.go(-1)
    • back()forward()
    • length 检测是否是用户历史记录中的第一个页面length == 0
全部评论

相关推荐

#简历#先说一说我自己的想法,很多人都很排斥苍穹外卖,认为没什么技术点和含金量,但实际上我觉得恰恰相反,苍穹外卖虽然代码本身并不是你自身能力的证明,但是是作为一个新人学习时很好的跳板和原始框架,在这个框架上进行的改进可以很好的辐射到你自己的个人成果上,并作为你和面试官聊天的筹码大多数人的苍穹外卖只写增删改查,千篇一律,吸引不了面试官,所以这才让大家误以为只要是苍穹外卖就不要写进简历里这种误区,但实际上如果你在原有的层面上进行改进,并作为你的项目亮点和面试官介绍,告诉他你的苍穹外卖和别人的有什么不同,增加了哪些技术难点,这才显得你是完全自己理解了这个项目,并且有自己动手实践项目的能力,而不是就看了个课程就以为自己会了,就当成自己的了,如此一来,这反而成为你的加分项苍穹外卖为什么看的人最多,说明它好啊,如果它不好,为什么看的人还这么多,想清楚这个逻辑,我觉得要做的最重要的事,就是如何在原有框架上进行改进提效,比起听其他人的话重新搞一个项目性价比高得多,而且我亲测项目并没有成为我找到工作的阻碍,我投的大厂一大半都给我面试了,而且很多不止一个部门,退一万步说,当你手头没有其他项目的时候,有苍穹外卖总比什么都没有的好很多,不需要因为苍穹外卖有任何心理负担关于简历的任何部分都欢迎大家提意见,十分感谢大家,祝大家找实习+秋招顺利上岸,offer拿到手软#简历中的项目经历要怎么写##我的上岸简历长这样##最后再改一次简历##简历##简历被挂麻了,求建议#
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务