BOM——基础

作者: 前往悬崖下寻宝的神三算 | 来源:发表于2018-09-03 15:09 被阅读23次

技术是自由的靠山

本文长期更新,如有错误,还请指正
关注一下不迷路 =.=

BOM,浏览器对象模型

window 对象


window 对象时JS的全局作用域,所有的全局变量都归纳为window的属性。

注:

  • window.xxvar xx 的区别
    var xx定义的变量不可通过 delelte window.xx 删除
  • 判断全局变量是否定义
    window.xx===undefined

window和frame的关系


极少用到frame,暂不作详述

窗口大小


这里只说视口的大小

ie8 非H5 H5
document.documentElement.clientWidth window.innerWidth
document.documentElement.clientHeight window.innerHeight

window.open()


window.open(url,windowName,optionsStr,bool) 返回一个窗口对象的引用,可以使用此对象移动、关闭窗口

  • windowName 如果存在,则聚焦否则新建
  • optionsStr 字符串形式的配置项,

location 对象


location 即属于是window对象也是document对象

image.png

location.href

返回当前页面的完整url

location.href
// "https://www.jianshu.com/writer#/notebooks/256102535/notes/29153954/preview"

注:使用此方法或者 window.location=xx 进行页面跳转

location.protocol

返回协议类型

location.protocol
//"https:"

location.host

  • location.host 返回地址和端口号
  • location.hostname 返回地址
  • location.port 返回端口号
location.host
// "www.jianshu.com"

location.hash

返回hash部分(#号后面)

location.hash
// "#/notebooks/256102535/notes/29153954/preview"

注:react-router中的hashRouter貌似就使用的hash管理路由的

location.search

返回查询部分(?后面)

location.search
// "?id=1570130098213052&wfr=spider&for=pc"

navigator 对象


用于识别浏览器,一般都使用 userAgent 来区分,此属性不同浏览器包含不同的特定的字段:

    //edge
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"
    //ie11
    "mozilla/5.0 (windows nt 6.3; trident/7.0; rv:11.0) like gecko"
    //ie10
    "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)"
    //ie9
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"
    //ie8
    "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)"
    //firefox
    "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0"
    //chrome
    "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.7 Safari/537.36"

一个检测浏览器和其版本的函数 :

function getVersion() {
    var ua = window.navigator.userAgent.toLowerCase();
    
    //顺序很重要
    //Edg
    if(ua.indexOf("edge") > -1){
        var ver = ua.match(/edge\/([\d.]+)/)[1];
        return { type: "edge", version: ver };
    }
    //ie11
    if(ua.indexOf(") like Gecko")>-1){
        var ver = ua.match(/rv\:([\d.]+)/)[1];
        return { type: "IE", version: ver };
    }
    //ie
    if (ua.indexOf("msie") >= 0) {
        var ver = ua.match(/msie ([\d.]+)/)[1];
        return { type: "IE", version: ver };
    }
    //firefox
    else if (ua.indexOf("firefox") >= 0) {
        var ver = ua.match(/firefox\/([\d.]+)/)[1];
        return { type: "Firefox", version: ver };
    }
    //Chrome
    else if (ua.indexOf("chrome") >= 0) {
        var ver = ua.match(/chrome\/([\d.]+)/)[1];
        return { type: "Chrome", version: ver };
    }
    //Opera
    else if (ua.indexOf("opera") >= 0) {
        var ver = ua.match(/opera.([\d.]+)/)[1];
        return { type: "Opera", version: ver };
    }
    //Safari
    else if (ua.indexOf("Safari") >= 0) {
        var ver = ua.match(/version\/([\d.]+)/)[1];
        return { type: "Safari", version: ver };
    }
}

screen对象


history


参考

相关文章

  • BOM——基础

    技术是自由的靠山 本文长期更新,如有错误,还请指正关注一下不迷路 =.= BOM,浏览器对象模型 window 对...

  • BOM基础

    js提供了一系列对象用于与浏览器交互,主要包括window、navigator、document、location...

  • js学习内容总结(2)

    1.语言基础2.严格模式3.js组成(ECMAScript DOM BOM)4.各种(DOM BOM)例子5.组件...

  • day25-课堂总结

    BOM基础 1.什么是BOM - 浏览器对象模型(browser object model)js中提供了一个全局的...

  • 每日复盘20200109

    每日最重要的三件事 时间:2020年1月9日(周四) 一、整理BOM类的基础数据 BOM类的基础数据是我们计划编制...

  • BOM基础操作

    打开关闭窗口 userAgent loction loction的search hash 可视区宽高,文档宽高,滚...

  • BOM基础笔记

    Window对象 parent 是父窗口 window.frames 返回窗口中所有命名的框架 opener是用o...

  • JS基础-BOM

    BOM(Browser Object Model 浏览器对象模型) window是全局浏览器内置顶级对象 1、全...

  • [JavaScript基础] BOM

    浏览器对象模型 Browser Object Model Window Javascript层级中的顶层对象,表示...

  • Dom

    JS的组成 ECMAScript js的基础语法 DOM 文档对象模型 BOM ...

网友评论

    本文标题:BOM——基础

    本文链接:https://www.haomeiwen.com/subject/nfoisftx.html