博客列表 >Window 对象

Window 对象


原创
2020年04月22日 01:21:25771浏览

Window 对象

[toc]

window 对象

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

window常用对象方法

方法 描述
alert() 显示带有一段消息和一个确认按钮的警告窗
prompt() 显示可提示用户输入的对话框
confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框
open() 打开啊一个新的浏览器窗口或查找一个已命名的窗口
close() 关闭浏览器窗口
print() 打印当前窗口的内容
scrollBy() 按照指定的像素值来滚动内容
scrollTo() 把内容滚动到指定的坐标
setInterval() 每隔指定的时间执行代码
setTimeout() 在指定的延迟时间后来执行代码
clearInterval() 取消setInterval()的设置
clearTimeout() 取消setTimeout()的设置
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>window对象</title>
  6. <script type="text/javascript">
  7. function openWindow() {
  8. var a = confirm("欢迎━(*`∀´*)ノ来到百度,点击【确定】一起嗨!");
  9. if (a == true) {
  10. window.open('https://www.baidu.com', '_blank', 'width=600px,height=400px');
  11. }
  12. else {
  13. return;
  14. }
  15. }
  16. </script>
  17. </head>
  18. <body>
  19. <form>
  20. <input type="button" value="点击我,打开新窗口" onclick="openWindow()" />
  21. </form>
  22. </body>
  23. </html>

JavaScript 计时器

在JavaScript中,我们可以在设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。
计时器类型:
一次性计时器:仅在指定的延迟时间之后触发一次。
间隔性触发计时器:每隔一定的时间间隔就触发一次。
计时器方法:

方法 描述
setInterval() 每隔指定的时间执行代码
setTimeout() 在指定的延迟时间后来执行代码
clearInterval() 取消setInterval()的设置
clearTimeout() 取消setTimeout()的设置

计时器setInterval()

在执行时,从载入页面后每隔指定的时间执行代码。

语法:

setInterval(代码,交互时间);

参数说明:

  1. 代码:要调用的函数或要执行的代码串。

  2. 交互时间:周期性执行或调用表达式之间的时间间隔,以毫秒计(1s=1000ms)。

返回值:

一个可以传递给 clearInterval() 从而取消对”代码”的周期性执行的值。

调用函数格式(假设有一个clock()函数):

  1. setInterval("clock()",1000)
  2. setInterval(clock,1000)

我们设置一个计时器,每隔100毫秒调用clock()函数,并将时间显示出来,代码如下:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>定时器</title>
  6. <script type="text/javascript">
  7. var attime;
  8. function clock() {
  9. var time = new Date();
  10. attime = time.getHours() + " : " + time.getMinutes() + " : " + time.getSeconds();
  11. document.getElementById("clock").value = attime;
  12. }
  13. setInterval(clock,1000);
  14. </script>
  15. </head>
  16. <body>
  17. <form>
  18. <input type="text" id="clock" size="50" />
  19. </form>
  20. </body>
  21. </html>

取消计时器clearInterval()

clearInterval() 方法可取消由 setInterval() 设置的交互时间。

语法:

clearInterval(id_of_setInterval)

参数说明:

id_of_setInterval:由 setInterval() 返回的 ID 值。

每隔 100 毫秒调用 clock() 函数,并显示时间。当点击按钮时,停止时间,代码如下:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>计时器</title>
  6. <script type="text/javascript">
  7. function clock() {
  8. var time = new Date();
  9. document.getElementById("clock").value = time;
  10. }
  11. // 每隔100毫秒调用clock函数,并将返回值赋值给i
  12. var i = setInterval("clock()", 100);
  13. </script>
  14. </head>
  15. <body>
  16. <form>
  17. <input type="text" id="clock" size="50" />
  18. <input type="button" value="Stop" onclick="clearInterval(i)" />
  19. </form>
  20. </body>
  21. </html>

计时器setTimeout()

setTimeout()计时器,在载入后延迟指定时间后,去执行一次表达式,仅执行一次。

语法:

setTimeout(代码,延迟时间);

参数说明:

  1. 要调用的函数或要执行的代码串。
  2. 延时时间:在执行代码前需等待的时间,以毫秒为单位(1s=1000ms)。

当我们打开网页3秒后,在弹出一个提示框,代码如下:

  1. <script type="text/javascript">
  2. setTimeout("alert('Hello!')", 3000);
  3. </script>

当按钮start被点击时,setTimeout()调用函数,在5秒后弹出一个提示框。

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <script type="text/javascript">
  5. function tinfo() {
  6. var t = setTimeout("alert('Hello!')", 5000);
  7. }
  8. </script>
  9. </head>
  10. <body>
  11. <form>
  12. <input type="button" value="start" onClick="tinfo()">
  13. </form>
  14. </body>
  15. </html>

要创建一个运行于无穷循环中的计数器,我们需要编写一个函数来调用其自身。在下面的代码,当按钮被点击后,输入域便从0开始计数。

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <script type="text/javascript">
  5. var num = 0;
  6. function numCount() {
  7. document.getElementById('txt').value = num;
  8. num = num + 1;
  9. setTimeout("numCount()", 1000);
  10. }
  11. </script>
  12. </head>
  13. <body>
  14. <form>
  15. <input type="text" id="txt" />
  16. <input type="button" value="Start" onClick="numCount()" />
  17. </form>
  18. </body>
  19. </html>

取消计时器clearTimeout()

setTimeout()和clearTimeout()一起使用,停止计时器。

语法:

clearTimeout(id_of_setTimeout)

参数说明:

id_of_setTimeout:由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。

下面的例子和上节的无穷循环的例子相似。唯一不同是,现在我们添加了一个 “Stop” 按钮来停止这个计数器:

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>计时器</title>
  6. <script type="text/javascript">
  7. var num = 0;
  8. var i;
  9. function startCount() {
  10. document.getElementById('count').value = num;
  11. num = num + 1;
  12. i = setTimeout("startCount()", 1000);
  13. }
  14. function stopCount() {
  15. clearTimeout(i);
  16. }
  17. </script>
  18. </head>
  19. <body>
  20. <form>
  21. <input type="text" id="count" />
  22. <input type="button" value="Start" onclick="startCount()" />
  23. <input type="button" value="Stop" onclick="stopCount()" />
  24. </form>
  25. </body>
  26. </html>

返回前一个浏览的页面

window.history.back();

或者

window.history.go(-1)

返回下一个浏览的页面

window.history.forward();

或者

window.history.go(1);

Location对象

location用于获取或设置窗体的URL,并且可以用于解析URL。

语法

location.[属性|方法]

例如URL

http://www.test.com:8080/list.php?uid=8&charpterid=86#mediaid118

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>Test.CC</title>
  5. <script type="text/javascript">
  6. document.write(window.location.protocol);
  7. document.write("<br>")
  8. document.write(window.location.host);
  9. document.write("<br>")
  10. document.write(window.location.hostname);
  11. document.write("<br>")
  12. document.write(window.location.port);
  13. document.write("<br>")
  14. document.write(window.location.pathname);
  15. document.write("<br>")
  16. document.write(window.location.search);
  17. document.write("<br>")
  18. document.write(window.location.hash);
  19. </script>
  20. </head>
  21. <body>
  22. <div>
  23. <!-- 下面是输出结果 -->
  24. http:
  25. www.test.com:8080
  26. www.test.com
  27. 8080
  28. /index.php
  29. ?uid=8&charpterid=86
  30. #mediaid118
  31. </div>
  32. </body>
  33. </html>

编程练习

倒计时任务, 5秒后跳转到指定页面, 亦可点击返回按钮返回前一页.

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <p>操作成功</p>
  10. <span id='myspan'></span>秒后回到主页<a href="http://www.baidu.com" onclick="window.history.back()">返回</a>
  11. </body>
  12. <script type="text/javascript">
  13. //获取显示秒数的元素,通过定时器来更改秒数。
  14. let seconds = document.getElementById('myspan');
  15. let i = 5;
  16. function tiktok(){
  17. if(i < 1){
  18. window.location.href = "http://www.baidu.com";
  19. }else{
  20. i = i-1;
  21. seconds.innerText = i;
  22. }
  23. }
  24. //通过window的location和history对象来控制网页的跳转。
  25. window.onload=function(){
  26. seconds.innerText = i;
  27. setInterval(tiktok,1000);
  28. }
  29. </script>
  30. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议