JavaScript_BOM

一、window对象

(一)常见方法

a. 打印方法
1) log() 以日志形式
window.console.log( ' 日志 ' )    // 以 日志 形式打印
2) error 以 错误 的形式
window.console.error( ' 错误 ' )  // 以 错误 形式打印
3) warn 以 警告 的形式
window.console.warn( ' 警告 ' )   // 以 警告 形式打印
4) info 以 消息 的形式
window.console.info( ' 消息 ' )   // 以 消息 形式打印
5) debug 以 测试 的形式
window.console.debug( ' 测试 ' )  // 以 测试 形式打印
b. 弹窗方法
1) alert() 提示窗
alert( ' 提示窗 ' )    // 弹出提示窗
2) confirm() 交互窗
var isTrue = confirm( ' 交互窗 ' )     // 弹出交互窗( Boolean类型 ) ,用户确认是 true,取消是 false;
console.log( isTrue )   // true/false
3) prompt() 输入窗
var str = prompt( ' 输入窗 ' )     // 输入窗口,返回的字符串
console.log( typeof str )   // string类型
c. 打开/关闭窗口
window.open ( url , name , [ options ] );   // 地址,title, 设置的参数(窗口的高度 宽度...)target(打开方式 _blank _self _parent)    
window.close( );    // 关闭自己
eg:
open( 'http://www.baidu.com' , '百度' , 'width=100,hright=200' )  // 打开一个百度官网( 宽100,高200 )
close();    // 关闭了自己这个窗口
// open 还要很多其他options选项
// height=100   窗⼝⾼度;
// width=400    窗⼝宽度;
// top=0    窗⼝距离屏幕上⽅的象素值;
// left=0   窗⼝距离屏幕左侧的象素值;
// toolbar=no   是否显⽰⼯具栏,yes为显⽰;
// menubar,scrollbars   表⽰菜单栏和滚动栏。
// resizable=no     是否允许改变窗⼝⼤⼩,yes为允许;
// location=no  是否显⽰地址栏,yes为允许;
// status=no    是否显⽰状态栏内的信息(通常是⽂件已经打开),yes为允许;
d. 移动窗口
1) moveBy() / moveTo()
// movaBy(x: number, y: number)
moveBy( 100, 100 )      // x,y 都移动自身的100;增加量!!
movaTo( 100, 100 )      // x,y 都移动至100;坐标!!
e. 设置窗口大小
1) resizeBy() / resizeTo()
//改变对应的窗口大小
window.resizeBy(200,200)    //width+200 height+200
//resizeTo
window.resizeTo(200,200)    //width=200 height=200
f. 打印方法
1) print()
//print打印方法
window.print()
g. 聚焦与失焦方法
1) focus() / blur()
//focus 聚焦 blur 失去焦点
window.focus()
window.blur()
h. 查找方法
1) find() 相当于ctrl+f
//find查找 
window.find()
i. 滚动栏位置改变
1) scrollBy() / scrollTo()
//滚动栏位置改变 初始位置 x:0,y:0 
// window.scrollBy( options ? : ScrollToOptions )
window.scrollBy(100,100)    //原本的位置 x+100,y+100
window.scrollTo(500,500) //到达位置 x=500 y=500     //回到顶部
  1. window在调用方法时,通常可以省略window,如:alter(),open()……
  2. 弹窗方法中,注意各个方法的返回值类型。
  3. 注意 By 和 To 的区别。

二、history对象

(一)属性

a. length 历史页面个数
// 历史页面个数 (本页操作)
console.log(history.length) // 1,2,3……
b. state 状态存储的对象
// state 状态值  null(默认)
console.log(history.state)  // null
c. scrollRestoration 滚动栏恢复
// 滚动条恢复属性   auto(默认)  manual(手动)
console.log(history.scrollRestoration); // auto

(二)方法

a. forward() 前进
<button onclick=fnForward()>前进</button>
<script>
    function fnForward() {
        history.forward()
    }
</script>>
b. back() 后退
<button onclick=fnBack()>后退</button>
<script>
    function fnBack() {
        history.back()
    }
</script>>
c. go() 去任意页面 0(自己)、小于零后退,大于零前进
<button onclick=fnGo()>GO</button>
<script>
    function fnGo() {
        history.go(-1)
    }
</script>>
d. pushState()
<button onclick=pushState()>Push</button>
<script>
    function pushState() {
        // pushState( data: any, unused: string, url?: string | URL )   state数据,第二个填'',第三个地址( 跨域问题 )
        history.pushState('111','')
    }
</script>>
e. replaceState()
<button onclick=replaceState()>replace</button>
<script>
    function replaceState() {
        // replaceState( data: any, unused: string, url?: string | URL )    state数据,第二个填'',第三个地址( 跨域问题 )
        history.replaceState('222','')
    }
</script>>

三、location对象

(一)属性

console.log(location);

// 相关属性
console.log(location.hash);     // hash #号后面的内容(#)
console.log(location.search);   // search ?号后面的内容(?)  不与hash同时使用

console.log(location.protocol); // 协议: http: 80      https: 443
console.log(location.host);     // ip号 + 端口号    127.0.0.1:5500
console.log(location.hostname); // ip号     127.0.0.1
console.log(location.port);     // 端口号   5500
console.log(location.pathname); // 路径名(后面的内容)
console.log(location.href);     // 跳转地址 (全称)  可以设置

console.log(location.origin);   // 跨域

(二)方法

a. assign() 跳转 可以返回
function fn() {
    location.assign('http://www.baidu.com')
}
b. replace() 替换 直接替换,无法返回
function fn() {
    location.replace('http://www.4399.com')
}
c. reload() 重新加载(相当于刷新)
function fn() {
    location.reload(true)   // true 为服务器加载  false为本地缓存加载
}

四、frames、screen、navigator

  • frames与第三方框架有关
  • screen为屏幕对象
  • navigator为浏览器以及系统对象
(一)screen 对象
a. 属性 (记得即可)
avaliHeight     // 可占用的最大高度
avaliWidth      // 可占用的最大宽度
avaliLeft       // 离屏幕左侧的距离
avaliTop        // 离屏幕上方的距离
(二)navigator对象
a. 属性
userAgent       // 用户浏览器设置信息

五、路由(拓展)

路由分为:前端路由和后端路由

前端路由:根据不同的访问路径(path),渲染不同的内容(组件)

  • 页面路由
  • hash路由
  • H5
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容

  • 对象属性 window //窗户自身, window=window.self可使用全局属性window访问Wind...
    还是那个没头脑阅读 329评论 0 1
  • 转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课...
    程序员poetry阅读 12,650评论 13 94
  • 简单面试题 1.map与foreach区别、 共同点1.都是循环遍历数组中的每一项。2.forEach() 和 m...
    栀璃鸢年_49a3阅读 1,954评论 2 18
  • 1.1 JavaScript基础概念: JavaScript (ECMAScript) :JavaScript 是...
    海若Hero阅读 35,035评论 1 27
  • BOM 浏览器对象模型(Browser Object Model (BOM)) 关于浏览器的一些知识 Chrome...
    Daeeman阅读 233评论 0 1