1、window对象

1.1、window对象:

  window对象是BOM的核心,window对象指当前的浏览器窗口

  所有javaScript全局对象、函数以及变量均自动生成为window对象的成员

  全局变量是window对象的属性

  全局函数是window对象的方法

  甚至HTML DOM的document也是window对象的属性之一

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
window.document.write("hello");/*这个效果和不写window.是一样的*/
</script>
</body>
</html>

1.2、window尺寸

  window.onnerHeight  - 浏览器窗口的内部高度

  window.innerWidth - 浏览器窗口的内部宽度

  备注:这个高度和宽度计算的不包含工具栏和滚动条这一部分

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
document.write(`高度:`+window.innerHeight+`,宽度:`+window.innerWidth);/*这个效果和不写window.是一样的*/
</script>
</body>
</html>

1.3window方法:

  window.open() - 打开新窗口

  window.close() - 关闭当前窗口

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button id="btn" onclick="btnOnClick()">按钮</button>
<script>
function btnOnClick(){
window.open("array1.html","hahaha","width=300,height=300,top=300,left=300,toolbar=yes")
/*要打开的窗口名|窗口命名|属性设置|toolbar设置属性如何显示,谷歌浏览器直接没有toolbar*/
window.close();/*关闭当前窗口*/
}
</script>
</body>
</html>

2、计时器

2.1、计时事件

  通过使用JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行,我们称之为计时事件

2.2、计时方法:

  1、setInterval() - 间隔指定的毫秒数不停地执行指定的代码

    clearInterval() - 方法用于停止setInterval()方法执行的函数代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button id="btn" onclick="stopTime()">anniu</button>
<p id="ptime"></p>
<script>
var mytime = setInterval(function(){
getTime();
},1000)
function getTime(){
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById("ptime").innerHTML = t;
}
function stopTime(){
clearInterval(mytime);
}
</script>
</body>
</html>

  2、setTimeout() - 暂停指定的毫秒数后执行指定的代码

    clearTimeout() - 方法用于停止执行setTimeout()方法的函数代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button id="btn" onclick="myWin()">弹出一次</button>
<button id="btn2" onclick="myWin2()">一直弹出</button>
<button id="btn3" onclick="stopWin()">停止弹出</button>
<script>
var win;
function myWin(){
win = setTimeout(function(){
alert("hello");
},3000);
}
function myWin2(){
alert("hello");
win = setTimeout(myWin2,3000);
/*方法自己调用自己可以一直执行*/
}
function stopWin(){
clearInterval(win);
}
</script>
</body>
</html>

区别:第一个方法是一只调用函数,第二种方法是一直自己调用自己

3、History对象

3.1、History对象:

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

3.2、History方法:

  history.back() - 与在浏览器点击后退按钮相同

  history.forward() - 与在浏览器中点击按钮向前相同

  history.go() - 进入历史中的某个页面(当前页面是0,可以往前是负数,往后是正数)

history1.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="history2.html">点击跳转到history2.html</a>
<button id="btn" onclick="forwardJump()">向前进(下一个页面)跳转</button>
<script>
function forwardJump(){
history.forward();
}
</script>
</body>
</html>

history2.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button id="btn" onclick="goceshi()">点击跳回到之前的页面</button>
<script>
function goceshi(){
history.back();/*返回到之前的界面*/
}
</script>
</body>
</html>

history.go()用法:

home.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>主页</title>
</head>
<body>
<a href="login.html">进入登录验证界面</a>
</body>
</html>

login.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录界面</title>
</head>
<body>
<form action="">
<input type="text" id = username>
</form>
<button id="btn" onclick="safe()">确认</button>
<script>
function safe(){
var name = document.getElementById("username").value;
if(name == "hello"){
history.go(-1);
}else{
alert("输入错误");
}
}
</script>
</body>
</html>

4、Location对象

4.1、Location对象:

  window.location对象用于获得当前页面的地址(URL),并把浏览器重新定向到新的页面

4.2、Location对象的属性:

  location.hostname:  返回web主机的域名

  location.pathname:  返回当前页面的路径和文件名

  location.port:  返回web主机的端口

  location.protocol:  返回所使用的web协议(http://或https://)

  location.href:  属性返回当前页面的URL

  location.assign()方法加载新的文档

<!DOCTYPE html>
<!--suppress ALL -->
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="div">
<button id="btn1" onclick="getLoc()">按钮1</button>
<button id="btn2" onclick="reNew()">按钮2</button>
<p id="ptime"></p>
</div>
<script>
function getLoc(){
document.getElementById("ptime").innerHTML = window.location.port;
var newnode = document.createElement("div");
document.getElementById("div").appendChild(newnode);
newnode.innerHTML = window.location.port;
}
function reNew(){
location.assign("http://www.baidu.com");
}
</script>
</body>
</html>

5、Screen对象

5.1、Screen对象:

  window.screen对象包含有关用户屏幕的信息

5.2、属性:

  screen.availWidth - 可用的屏幕宽度

  screen.availHeight - 可用的屏幕高度

  screen.height - 屏幕高度

  screen.width - 屏幕宽度

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
document.write(`可用高度`+screen.availHeight+`,可用宽度`+screen.availWidth+`<br/>`);
document.write(`整体高度`+screen.height+`,整体宽度`+screen.width+`<br/>`);
</script>
</body>
</html>

web前端学习(四)JavaScript学习笔记部分(8)-- JavaScript 浏览器对象的更多相关文章

  1. web前端--知识点,笔记叠加(javascript,jquery,html5+css3.0,ajax)

    函数传参列表,获取方法arguments的使用 function arg(){ var str = '总共传了'+arguments.length+'个参数\n'; for(var i=0;i< ...

  2. Web前端与移动开发学习路线图

    文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 这里整理的Web前端与移动开发学习路线图包含初中级两个部分,你可以通过百度云盘下载观看对应的视频 链接: http://pan.ba ...

  3. 想做web前端project师应该学习些什么?

    偶然间看到这篇文章.感觉博主写的挺不错的,假设你想做web前端project师的话,建议您阅读下面这篇文章,事实上web前端project师所做的工作事实上就是站点设计,有些小公司的美工事实上就是做w ...

  4. 最全的WEB前端开发程序员学习清单

    史上最全的WEB前端开发程序员学习清单! 今天为什么要给大家分享这篇文章呢,我发现最近来学前端的特别多,群里面整天都有人问:前端好找工作吗?前端要怎么学啊?前端工资怎么样?前端XX,前端XXX,虽然我 ...

  5. web前端开发控件学习笔记之jqgrid+ztree+echarts

    版权声明:本文为博主原创文章,转载请注明出处.   作为web前端初学者,今天要记录的是三个控件的使用心得,分别是表格控件jqgrid,树形控件ztree,图表控件echarts.下边分别进行描述. ...

  6. 2022年Web前端开发流程和学习路线(详尽版)

    前言 前端侧重于人机交互和用户体验,后端侧重于业务逻辑和大规模数据处理.理论上,面向用户的产品里,所有问题(包括产品.设计.后端.甚至看不见的问题)的表现形式,都会暴露在前端,而只有部分问题(数据问题 ...

  7. 最适合2018年自学的web前端零基础系统学习视频+资料

    这份资料整理花了近7天,如果感觉有用,可以分享给更有需要的人. 在看接下的介绍前,我先说一下整理这份资料的初衷: 我的初衷是想帮助在这个行业发展的朋友和童鞋们,在论坛博客等地方少花些时间找资料,把有限 ...

  8. web前端零基础入门学习!前端真不难!

    现在互联网发展迅速,前端也成了很重要的岗位之一,许多人都往前端靠拢,可又无能为力,不知所措,首先我们说为什么在编程里,大家都倾向于往前端靠呢?原因很简单,那就是,在程序员的世界里,前端开发是最最简单的 ...

  9. 史上最全的web前端开发程序员学习清单!

    今天为什么要给大家分享这篇文章呢,我发现最近来学前端的特别多,群里面整天都有人问:前端好找工作吗?前端要怎么学啊?前端工资怎么样?前端XX,前端XXX,虽然我回答过无数次这种问题了,但是问这个的还是有 ...

  10. WEB 前端模块化,读文笔记

    文章链接 WEB 前端模块化都有什么? 知识点 根据平台划分 浏览器 AMD.CMD 存在网络瓶颈,使用异步加载 非浏览器 CommonJS 直接操作 IO,同步加载 浏览器 AMD 依赖前置 req ...

随机推荐

  1. 洛谷P2371 [国家集训队]墨墨的等式

    P2371 [国家集训队]墨墨的等式 题目描述 墨墨突然对等式很感兴趣,他正在研究a1x1+a2y2+-+anxn=Ba_1x_1+a_2y_2+-+a_nx_n=Ba1​x1​+a2​y2​+-+a ...

  2. Sightseeing Cows

    Sightseeing Cows 给出一张图,点数为L,边数P,并给出边的边权\(\{b_i\}\),再给处每个点的点权,求一条起点和终点相同的路径,并使其点权之和除以边权之和最大,注意,路径中点权只 ...

  3. Python-线程(2)

    目录 GIL全局解释器锁 GIL 与 Lock 多进程 VS 多线程 死锁现象 递归锁 信号量 Semaphore 线程队列 GIL全局解释器锁 在Cpython解释器中,同一个进程下开启的多线程,同 ...

  4. codevs1222 信与信封的问题

    二分图匹配. 先匹配一次,一定是完美匹配.然后枚举每条边,去掉它,若是不能完美匹配,这条边就必须. #include<cstdio> #include<cstring> #in ...

  5. javascript 数组的方法(一)

    栈方法(后进先出) ArrayObj.push():就是向数组末尾添加新的元素,返回的是数组新的长度. ArrayObj.pop():就是向数组中删除数组最后一个元素并且返回该元素.如果数组为空就返回 ...

  6. 34 N皇后问题Ⅱ

    原题网址:https://www.lintcode.com/zh-cn/old/problem/n-queens-ii/ 34. N皇后问题 II   描述 笔记 数据 评测 讨论区 根据n皇后问题, ...

  7. ansible 安装 使用 命令 笔记 生成密钥 管控机 被管控机 wget epel源

      ansible 与salt对比 相同 都是为了同时在多台机器上执行相同的命令 都是python开发 不同 agent(saltstack需要安装.ansible不需要) 配置(salt配置麻烦,a ...

  8. <每日一题>题目15:mysql创建表及相关约束

    题目: 解答: 第一个表创建: create table class( cid int not null auto_increment primary key, caption char(20) no ...

  9. [编织消息框架][JAVA核心技术]动态代理应用4-annotationProcessor

    基础部份: 接下来讲编译JAVA时,生成自定义class 我们用 javax.annotation.processing.AbstractProcessor 来处理 public abstract c ...

  10. Ionic 选择图片上传

    1.添加插件 1.1 安装ngcordova 1.2 安装选择图片插件 1.3 安装上传插件 1.4查看安装插件集合 2.html 代码 <div class="item item-i ...