js第6章BOM案例:打开和关闭窗口、窗口位置和大小、计数器、更改URL、获取URL参数、历史记录跳转、navigator对象和screen对象、红绿灯倒计时

本文主要是介绍js第6章BOM案例:打开和关闭窗口、窗口位置和大小、计数器、更改URL、获取URL参数、历史记录跳转、navigator对象和screen对象、红绿灯倒计时,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.打开和关闭窗口

弹出对话框和窗口相关的属性和方法

 弹出对话框和窗口——open()方法

name可选值

specs可选值

 2.窗口位置和大小

 3.计数器

 4.更改URL

5.获取URL参数

 6.历史记录跳转

history对象的属性和方法

无刷新更改URL地址

7. navigator对象和screen对象

8.红绿灯倒计时。


1.打开和关闭窗口

弹出对话框和窗口相关的属性和方法

分类

名称

说明

属性

closed

返回一个布尔值,该值声明了窗口是否已经关闭

name

设置或返回存放窗口名称的一个字符串

opener

返回对创建该窗口的window对象的引用

parent

返回当前窗口的父窗口

self

对当前窗口的引用,等价于window属性

top

返回最顶层的父窗口

方法

alert()

显示带有一段消息和一个确认按钮的警告框

confirm()

显示带有一段消息以及确认按钮和取消按钮的对话框

方法

prompt()

显示可提示用户输入的对话框

open()

打开一个新的浏览器窗口或查找一个已命名的窗口

close()

关闭浏览器窗口

focus()

把键盘焦点给予一个窗口

print()

打印当前窗口的内容

scrollBy()

按照指定的像素值来滚动内容

scrollTo()

把内容滚动到指定的坐标

 弹出对话框和窗口——open()方法

name可选值

name可选值

含义

_blank

URL加载到一个新的窗口,也是默认值

_parent

URL加载到父框架

_self

URL替换当前页面

_top

URL替换任何可加载的框架集

name

窗口名称

specs可选值

specs可选参数

说明

height

Number

窗口的高度,最小值为100

left

Number

该窗口的左侧位置

location

yes|no|1|0

是否显示地址字段,默认值是yes

menubar

yes|no|1|0

是否显示菜单栏,默认值是yes

resizable

yes|no|1|0

是否可调整窗口大小,默认值是yes

scrollbars

yes|no|1|0

是否显示滚动条,默认值是yes

status

yes|no|1|0

是否要添加一个状态栏,默认值是yes

titlebar

yes|no|1|0

是否显示标题栏.被忽略,除非调用HTML应用程序或一个值得信赖的对话框,默认值是yes

toolbar

yes|no|1|0

是否显示浏览器工具栏,默认值是yes

width

Number

窗口的宽度,最小值为100

<body><p><input type="button" value="打开窗口" onclick="openWin()"></p><p><input type="button" value="关闭窗口" onclick="closeWin()"></p><p><input type="button" value="检测窗口是否关闭" onclick="checkWin()"></p><p id="msg"></p><script>var myWindow;function openWin() {myWindow = window.open('', 'newWin', 'width=400,height=200,left=200');myWindow.document.write('<p>窗口名称为:' + myWindow.name + '</p>');myWindow.document.write('<p>当前窗口的父窗口地址:' + window.parent.location + '</p>');}function closeWin() {myWindow.close();}function checkWin() {if (myWindow) {var str = myWindow.closed ? '窗口已关闭!' : '窗口未关闭!';} else {var str = '窗口没有被打开!';}document.getElementById('msg').innerHTML = str;}</script>
</body>

运行效果:

 

 

 2.窗口位置和大小

分类

名称

说明

属性

screenLeft

返回相对于屏幕窗口的x坐标(Firefox不支持)

screenTop

返回相对于屏幕窗口的y坐标(Firefox不支持)

screenX

返回相对于屏幕窗口的x坐标(IE8不支持)

screenY

返回相对于屏幕窗口的y坐标(IE8不支持)

innerHeight

返回窗口的文档显示区的高度(IE8不支持)

innerWidth

返回窗口的文档显示区的宽度(IE8不支持)

outerHeight

返回窗口的外部高度,包含工具条与滚动条(IE8不支持)

outerWidth

返回窗口的外部宽度,包含工具条与滚动条(IE8不支持)

方法

moveBy()

将窗口移动到相对的位置

moveTo()

将窗口移动到指定的位置

resizeBy()

将窗口大小调整到相对的宽度和高度

resizeTo()

将窗口大小调整到指定的宽度和高度

<body><input type="button" value="打开窗口" onclick="openWin()"><input type="button" value="调整窗口位置和大小" onclick="changeWin()"><script>var myWindow;function openWin() {myWindow = window.open('', 'newWin', 'width=250,height=300');getPosSize();                   // 获取窗口信息}function changeWin() {myWindow.moveBy(250, 250);      // 将newWin窗口下移250像素,右移250像素myWindow.focus();               // 获取移动后newWin窗口的焦点myWindow.resizeTo(500, 350);    // 修改newWin窗口的宽度为500,高度为350getPosSize();                   // 获取窗口信息}function getPosSize() {// 获取相对于屏幕窗口的坐标var x = myWindow.screenLeft, y = myWindow.screenTop;// 获取窗口和文档的高度和宽度var inH = myWindow.innerHeight, inW = myWindow.innerWidth;var outH = myWindow.outerHeight, outW = myWindow.outerWidth;myWindow.document.write('<p>相对屏幕窗口的坐标:(' + x + ',' + y + ')</p>');myWindow.document.write('<p>文档的高度和宽度:' + inH + ',' + inW + '</p>');myWindow.document.write('<p>窗口的高度和宽度:' + outH + ',' + outW + '</p><hr>');}</script>
</body>

运行效果:

 

 3.计数器

方法

说明

setTimeout()

在指定的毫秒数后调用函数或执行一段代码

setInterval()

按照指定的周期(以毫秒计)来调用函数或执行一段代码

clearTimeout()

取消由setTimeout()方法设置的定时器

clearInterval()

取消由setInterval()设置的定时器

setTimeout()和setInterval()方法区别: 相同点:都可以在一个固定时间段内执行JavaScript程序代码。 不同点:setTimeout()只执行一次代码,setInterval()会在指定的时间后,自动重复执行代码。 

<body><input type="button" value="开始计数" onclick="startCount()"><input id="num" type="text"><input type="button" value="停止计数" onclick="stopCount()"><script>var timer = null, c = 0;function timedCount() {       // 在文本框中显示数据document.getElementById('num').value = c;++c;                        // 显示数据加1}function startCount() {       // 开始间歇调用timer = setInterval(timedCount, 1000);}function stopCount() {        // 清除间歇调用clearInterval(timer);}</script>
</body>

运行效果:

 4.更改URL

名称

说明

assign()

载入一个的文档

reload()

重新载入当前文档

replace()

的文档替换当前文档 

reload()方法的唯一参数,是一个布尔类型值,将其设置为true时,它会绕过缓存,从服务器上重新下载该文档,类似于浏览器中的刷新页面按钮。 

5.获取URL参数

获取URL的指定部分:location.属性名。 设置URL的指定部分:location.属性名 = 值。

location对象的属性

属性

说明

属性

说明

hash

返回一个URL的锚部分

pathname

返回URL的路径名

host

返回一个URL的主机名和端口

port

返回一个URL服务器使用的端口号

hostname

返回URL的主机名

protocol

返回一个URL协议

href

返回完整的URL

<body><input type="button" value="载入新文档" onclick="newPage()"><input type="button" value="刷新页面" onclick="freshPage()"><p id="time"></p><script>// 获取并显示当前页面载入的时间var ds = new Date(), d = ds.getDate();var t = ds.toLocaleTimeString();document.getElementById('time').innerHTML = t;// 载入新文档function newPage() {window.location.assign('http://www.example.com')}// 刷新文档function freshPage() {location.reload(true);}</script>
</body>

运行效果:

 6.历史记录跳转

history对象的属性和方法

分类

名称

说明

属性

length

返回历史列表中的网址数

方法

back()

加载history列表中的前一个URL

forward()

加载history列表中的下一个URL

go()

加载history列表中的某个具体页面

<body><input type="button" value="前进" onclick="goForward()"><input type="button" value="新网页" onclick="newPage()"><script>function newPage() {      // 打开一个新的文档window.location.assign('show.html');}function goForward() {    // 前进history.go(1);}</script>
</body>

show.html

<body><input type="button" value="后退" onclick="goBack()"><script>function goBack() {history.go(-1);}</script>
</body>

运行效果:

 

无刷新更改URL地址

pushState()方法会改变浏览器的历史列表中记录的数量。

replaceState()方法仅用于修改历史记录,历史记录列表的数量不变,与location.replace()方法的功能类似。 

7. navigator对象和screen对象

navigator对象提供了有关浏览器的信息。

navigator对象的属性和方法

分类

名称

说明

属性

appCodeName

返回浏览器的内部名称

appName

返回浏览器的名称

appVersion

返回浏览器的平台和版本信息

cookieEnabled

返回指明浏览器中是否启用cookie的布尔值

platform

返回运行浏览器的操作系统平台

userAgent

返回由客户端发送服务器的User-Agent头部的值

方法

javaEnabled()

指定是否在浏览器中启用Java

screen对象用于返回当前渲染窗口中与屏幕相关的属性信息,如屏幕的宽度和高度等。 

 screen对象的属性和方法

名称

说明

height

返回整个屏幕的高

width

返回整个屏幕的宽

availHeight

返回浏览器窗口在屏幕上可占用的垂直空间

availWidth

返回浏览器窗口在屏幕上可占用的水平空间

colorDepth

返回屏幕的颜色深度

pixelDepth

返回屏幕的位深度/色彩深度

8.红绿灯倒计时。

现实生活中,为保证行人和车辆安全有序地通行,交叉路口都会设置交通信号灯。横向三色交通信号灯的亮灯顺序一般为“绿→黄→红→绿”依次循环。其中,亮灯时长需根据路口的实际情况等因素来考虑设置。例如,将某一个十字路口的交通信号灯每分钟红灯亮设置为30秒,绿灯亮设置为35秒,黄灯亮设置为5秒。

<style>.box{width:250px;height:52px;padding:15px 30px;border:2px solid #ccc;border-radius:16px;margin:0 auto;}.box .count{width:60px;color:#666;font-size:280%;line-height:50px;padding-left:6px;margin-left:5px;border:1px solid #fff}.box div{margin-left:5px;float:left;width:50px;height:50px;border-radius:50px;border:1px solid #666;}.gray{background-color:#eee;}.red{background-color:red;}.yellow{background-color:yellow;}.green{background-color:#26ff00;}
</style>
<body><div class="box"><div id="red"></div><div id="yellow"></div><div id="green"></div><div class="count" id="count"></div></div><script>// 获取红、黄、绿灯以及倒计时的元素对象var lamp = {red: {obj: document.getElementById('red'),timeout: 30,style: ['red', 'gray', 'gray'],next: 'green'},yellow: {obj: document.getElementById('yellow'),timeout: 5,style: ['gray', 'yellow', 'gray'],next: 'red'},green: {obj: document.getElementById('green'),timeout: 35,style: ['gray', 'gray', 'green'],next: 'yellow'},changeStyle(style) {this.red.obj.className = style[0];this.yellow.obj.className = style[1];this.green.obj.className = style[2];}};var count = {obj: document.getElementById('count'),change: function(num) {this.obj.innerHTML = (num < 10) ? ('0' + num) : num;}};var now = lamp.green;var timeout = now.timeout;lamp.changeStyle(now.style);count.change(timeout);setInterval(function() {if (--timeout <= 0) {now = lamp[now.next];timeout = now.timeout;lamp.changeStyle(now.style);}count.change(timeout);}, 1000);</script>
</body>

运行效果:

 

 

这篇关于js第6章BOM案例:打开和关闭窗口、窗口位置和大小、计数器、更改URL、获取URL参数、历史记录跳转、navigator对象和screen对象、红绿灯倒计时的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/735888

相关文章

sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符

《sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符》:本文主要介绍sqlserver、mysql、oracle、pgsql、sqlite五大... 目录一、转义符1.1 oracle1.2 sqlserver1.3 PostgreSQL1.4 SQLi

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二