python 执行js 提示window未定义_javascript:window对象(上)

c87e4a66c81f4026a6a2c0be31492fa6.png

大家好,我来了!本期为大家带来的Web前端学习知识是”javascript:window对象(上)“,喜欢Web前端的小伙伴,一起看看吧!

本节主要内容:

  1. BOM的概念
  2. window对象
  3. 提示框
  4. 间隔调用和延迟调用

学习目标:

6a9b944a5cfbe7893a894f7ee48e5db3.png

一、BOM的概念

1.1 什么是BOM?

BOM:Browser Object Model 是浏览器对象模型,BOM由多个对象构成,其中代表浏览器窗口的window对象是BOM的顶层对象也是核心对象,其他对象都是该对象的子对象。

1.2 BOM包含哪些内容?

1.2.1 浏览器介绍

1.2.2 BOM对象包含

(1)window 对象,是 JS 的最顶层对象,其他的 BOM 对象都是 window 对象的属性。

(2)document 对象,文档对象;

(3)location 对象,浏览器当前URL信息;

(4)navigator 对象,浏览器本身信息;

(5)screen 对象,客户端屏幕信息;

(6)history 对象,浏览器访问历史信息;

在浏览器中,window对象有双重角色,它既是通过javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。

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

全局变量是 window 对象的属性。

全局函数是 window 对象的方法。

c560f36e3fa9463f235a28c01b021013.png

1.3 BOM和DOM的关系

(1)DOM通过document对象来访问、控制、修改html和xhtml等文档中的内容

(2)BOM通过 window 对象来访问、控制、修改浏览器中的内容

联系:BOM包含DOM。
区别:DOM描述了处理网页内容的方法和接口,即操作页面内部

BOM描述了与浏览器进行交互的方法和接口,即操作页面之间

02e762df0897de9b7cb4f58464278fc0.png

3b9a589c128925e3192bbe65be3efd86.png

二、window对象

所有浏览器都支持 window 对象。它表示浏览器窗口。

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

全局变量是 window 对象的属性。

全局函数是 window 对象的方法。

2.1 window对象

因为window对象是js中的顶级对象,因此所有定义在全局作用域中的变量、函数都会变成window对象的属性和方法,在调用的时候可以省略window。

例如:

打开窗口 window.open(url); 【等价于open(url);】

关闭窗口 window.close(); 【等价于close();】

获取事件 window.event 【等价于event;】

获取文档 window.document 【等价于document】

177a3aa3ac05c2c21a11dfa3b184056e.png

2.2 window对象中常用的属性

2.2.1 window.name

属性:

window.name是window对象的一个属性,默认值为空。

特性:

window.name值在不同的页面(甚至不同域名)加载后依旧存在,

并且可以支持非常长的name值(2MB左右)

f9a77c961082154cb31bc54a1f91791a.png

27d8f6f58850733b0266f9767062ec44.png

2.2.2浏览器距离屏幕的距离

window.screenX

window.screenY

aca934b7f2a07e0cb95d7705630b02f7.png

2.2.3 window尺寸属性

outerHeight属性设置或返回一个窗口的外部高度,包括所有界面元素(如工具栏/滚动条)。

outerWidth属性设置或返回窗口的外部宽度,包括所有的界面元素(如工具栏/滚动条)。

innerheight 返回窗口的文档显示区的高度。

innerwidth 返回窗口的文档显示区的宽度。

5df52819d127d8f7edcd8665a92ac36d.png

9bb96ca778479e65dd2135a2bf450275.png

2.2.4 document对象

2.2.4 window.navigator对象

window.navigator对象包含大量有关Web浏览器的信息,在检测浏览器及操作系统上非常有用。(这个对象和event一样是一个全局变量,并且是唯一的)

navigator.appCodeName //浏览器代码名的字符串表示

navigator.appName //官方浏览器名的字符串表示

navigator.appVersion //浏览器版本信息的字符串表示

navigator.userAgent //返回和浏览器内核相关的信息

navigator.cookieEnabled //如果启用cookie返回true,否则返回false

navigator.javaEnabled() //如果启用java返回true,否则返回false

navigator.platform //浏览器所在计算机平台的字符串表示

navigator.plugins //安装在浏览器中的插件数组

ps:如果window.navigator.userAgent出现了Mobile,可以确定用户使用的是移动设备。

11867fb1ea1a701560770df39b871dfd.png

33a7c32ccd8f32279773a71894e1e481.png

2.2.5 Location 对象

  • location.hostname 返回 web 主机的域名
  • location.pathname 返回当前页面的路径和文件名
  • location.port 返回 web 主机的端口 (80 或 443)
  • location.protocol 返回所使用的 web 协议(http: 或 https:)

77bd1939195b69b07f8eeeb00c877dae.png

8d8fa8d22927a37b745af27f29cfc3f0.png

search 属性是一个可读可写的字符串,可设置或返回当前 URL 的查询部分(问号 ? 之后的部分)

b3a17ddd2d36fb6dbdbb315999ba2d9b.png

e60fb9cee3ab7f12a2e35886f9efe22e.png

2.2.6 screen对象

2.3 window对象中常用的方法

0e2dc221a7218f7c250188efe6e9f009.png

335a8d37400ab618ce7e08cc0774a7c0.png

2.5 实例:三级联动菜单

a3b5743282afab51d2e32812942b24ff.png

9bbd7bca955b07e184932929dd294c5f.png

935d4c045b829606466ea7afb71e7e86.png

d25ad4f67bf23333ee4208da203d77f4.png

0160d5adb12983fe26809de22e9f4850.png

e21359456293182357bcb65697e79aa9.png

5fd71ebc386d4bd1f1385f54aafe3065.png

三、提示框

3.1警告框

9d7a7d1a8b4bd5646cd929d1c6bca10d.png

3.2 输入框

prompt(alertMsg,defaultMsg);

表示警示框,作用是提示用户信息,该方法执行后根据情况不同返回值略有不同。

a)点击取消,返回值为null

b)没有默认值

如果用户没有输入内容,返回一个空字符串

如果用户输入了内容,返回值为用户输入的内容

c)有默认值

如果用户没有输入内容,返回默认值

如果用户修改了默认,返回值为用户输入的内容

0f9b5c0722abb01833655db332dd3235.png

3.3 确认框

73f089f7bfbc42ec47236aa76062ccae.png

3.4 实例:自定义右键菜单

9b13b980c9fa1cc6ebadc21544dde50f.png

424402964bfe5bbf8890b39919c4e282.png

bc7977cc879731147be0c16469b08a08.png

8804c64d93b06ba656c9b9eb97427b11.png

2689c11fafd14374ca1515ba77764769.png

d856ca13ce92ed09887927632e24cfdc.png

3.5 实例:放大镜效果

9a46628a16f93b8f47920d4d10c62821.png

dbe6372e736546962001ccd3b82ca4fe.png

bfc846c1aa53c211f3bacee5b896f247.png

ab794a73a1d05b9262b1adf61af48997.png

53b4ae271ce4d9b7e194f49010ed1ffc.png

b4988c9b6a74301716ada5147c5f6f1a.png

1535bdc3bc6cedd93a97368550e7af33.png

四、间隔调用和延迟调用

4.1 定时器

setInterval(表达式,毫秒数)

语法:var timer = null;

timer = setInterval(需要执行的函数,执行间隔时间ms);

例如:var timer = null;

timer = setInterval(function(){

console.log('hello world!');

},2000);

总结说明:

  1. 要把定时器下边的任务执行完毕后 才会去执行定时器的内容

2. 定时执行中this指向window

3. 每创建一个定时器 就会有一个唯一的id被返回 id从开始 之后累加

4c8cf4f313683cc7f951ff5d5e9e2b54.png


4. 清除定时器时 不仅可以使用变量 也可以使用唯一Id清除

2987eb6c26e66fcddf04b54e41409dc4.png

5. 当定时执行的函数是包含参数时 则应该 将函数和参数 使用引号包裹起来

905a59a2b557a8ba57d4529e627c7d71.png

cb3a1228b36b4e7b0d9341ad8dc292e1.png

f34c653f7295d8cd25f41434c9a53a3f.png

首先明确两点:

1.JS 执行机制是单线程。

2.JS的Event loop是JS的执行机制

按照这种的分类方式JS的执行机制是:

异步的编程思想:

首先,判断JS是同步还是异步,同步进入主线程,异步进入Event table

其次,异步任务在Event table中注册函数,当满足特定的条件,被推入Event queue(消息队列)最后,同步任务进入主线程后一直执行,直到主线程空闲后,才会去Event queue中查看是否有可执行的异步任务,如果有就推入主线程中执行。

清除间隔调用

既然间隔调用每隔一段时间就会自动执行一次,那么清除间隔调用就势必存在。

语法:clearInterval(变量标识)

例如:clearInterval(timer);

上述代码就能够将刚刚创建的定时器移除掉,令其不在间隔一段时间后自动再次执行。

注意:

(1)间隔调用的返回值是一个数字队列,因此通过访问数字队列来清除间隔调用也被允许。

adf5b8c6b62d9e36d9f3730985e662af.png

ae6e4a9399cc7e2bb7d9eb35c67a3c6e.png

注意:

(2) 如果间隔调用的函数需要传入参数,则间隔调用需要使用如下的方式声明

语法:var timer = null;

timer = setInterval(字符串,执行间隔事件ms);

例如:var timer = null;

function show(words){console.log(words);}

timer = setInterval('show("hello world!")',2000);

(3) 间隔调用不是立即执行,而是在【任务队列中的任务完成后】才执行间隔调用

(4) 因为间隔调用函数的实际执行者是window,因此间隔调用内部的this指向window

4.2 延时器

延迟调用又叫延迟调用函数。是一种能够等待一定时间后在执行的函数。

语法:var timer = null;

timer = setTimeout(需要执行的函数,等待的时间);

例如:var wait = null;

wait = setTimeout(function(){

console.log('hello world!');

},2000);

根据语法所述,上述代码所表示的含义为:等待2s后打印一句【hello world!】

注意:延迟调用除了在语法上和间隔调用略有不同外,其余语法均相同。

0d934dc15edd81265f687891cc2e1b80.png

37f8e08dee621b0b8850cf0ae4b76715.png

(1)阅读下列代码,口算打印结果

setInterval(function () {console.log(1111);},0);
setTimeout(function () {console.log(2222);},0);
(2)阅读下列代码,口算打印结果

var div = document.getElementsByTagName("div").item(0);
div.onclick = function () {
setTimeout(function () {console.log(this);}, 1000);
};

4.4 实例:时间走动

db94857b6df88f42b99d12e63e4e6734.png

46e495e7f42418e77d38d6190df776c7.png

c53bac28e27e5764114537548e745b0e.png

4.5 实例:倒计时

6d8924b72c1f2de20cdbe3408bab2175.png

bb235830458477a5bb54995720f90d33.png

4.6 实例:进度条的加载

de628a2566d18cfc04dccabb4eef7fbd.png

e9bb934dc09908fcd4a0a623148e3432.png

73db04bed426078901ab5ceb2faaab3b.png

好了,本期带来的Web前端开发知识”javascript:window对象(上)“到此结束了,后续内容下期展示,小伙伴们动动小手点个赞呗,我们下期再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值