摘要:我们可以通过属性对该事件指定回调函数。出错了由于历史原因,的事件的回调函数不接受错误对象作为参数,而是一共可以接受五个参数,它们的含义依次如下。
1.window.requestIdleCallback()
window.requestIdleCallback(callback[, options])
callback参数是一个回调函数。该回调函数执行时,系统会传入一个IdleDeadline对象作为参数。IdleDeadline对象有一个didTimeout属性(布尔值,表示是否为超时调用)和一个timeRemaining()方法(返回该空闲时段剩余的毫秒数)
options参数是一个配置对象,目前只有timeout一个属性,用来指定回调函数推迟执行的最大毫秒数。该参数可选
requestIdleCallback(myNonEssentialWork);
function myNonEssentialWork(deadline) {
while (deadline.timeRemaining() > 0) {
doWorkIfNeeded();
}
}
上面代码中,requestIdleCallback()用来执行非关键任务myNonEssentialWork。该任务先确认本次空闲时段有剩余时间,然后才真正开始执行任务
下面是指定timeout的例子。
requestIdleCallback(processPendingAnalyticsEvents, { timeout: 2000 });
上面代码指定,processPendingAnalyticsEvents必须在未来2秒之内执行
如果由于超时导致回调函数执行,则deadline.timeRemaining()返回0,deadline.didTimeout返回true。
如果多次执行window.requestIdleCallback(),指定多个回调函数,那么这些回调函数将排成一个队列,按照先进先出的顺序执行。
事件window对象可以接收以下事件。
4.1load 事件和 onload 属性load事件发生在文档在浏览器窗口加载完毕时。window.onload属性可以指定这个事件的回调函数
window.onload = function() {
var elements = document.getElementsByClassName("example");
for (var i = 0; i < elements.length; i++) {
var elt = elements[i]; // ...
}
};
上面代码在网页加载完毕后,获取指定元素并进行处理。
浏览器脚本发生错误时,会触发window对象的error事件。我们可以通过window.onerror属性对该事件指定回调函数。
window.onerror = function (message, filename, lineno, colno, error) {
console.log("出错了!--> %s", error.stack);
};
由于历史原因,window的error事件的回调函数不接受错误对象作为参数,而是一共可以接受五个参数,它们的含义依次如下。
出错信息
出错脚本的网址
行号
列号
错误对象
老式浏览器只支持前三个参数
并不是所有的错误,都会触发 JavaScript 的error事件(即让 JavaScript 报错)。
一般来说,只有 JavaScript 脚本的错误,才会触发这个事件,而像资源文件不存在之类的错误,都不会触发。
下面是一个例子,如果整个页面未捕获错误超过3个,就显示警告。
window.onerror = function(msg, url, line) {
if (onerror.num++ > onerror.max) {
alert("ERROR: " + msg + " " + url + ":" + line); return true;
}
}
onerror.max = 3;
onerror.num = 0;
需要注意的是,如果脚本网址与网页网址不在同一个域(比如使用了 CDN),浏览器根本不会提供详细的出错信息,只会提示出错,错误类型是“Script error.”,行号为0,其他信息都没有。这是浏览器防止向外部脚本泄漏信息。
一个解决方法是在脚本所在的服务器,设置Access-Control-Allow-Origin的 HTTP 头信息。
Access-Control-Allow-Origin: *
然后,在网页的
上面代码的crossorigin="anonymous"表示,读取文件不需要身份信息,即不需要 cookie 和 HTTP 认证信息。如果设为crossorigin="use-credentials",就表示浏览器会上传 cookie 和 HTTP 认证信息,同时还需要服务器端打开 HTTP 头信息Access-Control-Allow-Credentials
除了具备元素节点都有的 GlobalEventHandlers 接口,window对象还具有以下的事件监听函数属性。
window.onafterprint:afterprint事件的监听函数。
window.onbeforeprint:beforeprint事件的监听函数。
window.onbeforeunload:beforeunload事件的监听函数。
window.onhashchange:hashchange事件的监听函数。
window.onlanguagechange: languagechange的监听函数。
window.onmessage:message事件的监听函数。
window.onmessageerror:MessageError事件的监听函数。
window.onoffline:offline事件的监听函数。
window.ononline:online事件的监听函数。
window.onpagehide:pagehide事件的监听函数。
window.onpageshow:pageshow事件的监听函数。
window.onpopstate:popstate事件的监听函数。
window.onstorage:storage事件的监听函数。
window.onunhandledrejection:未处理的 Promise 对象的reject事件的监听函数。
window.onunload:unload事件的监听函数。
由于网页可以使用iframe元素,嵌入其他网页,因此一个网页之中会形成多个窗口。如果子窗口之中又嵌入别的网页,就会形成多级窗口。
各个窗口之中的脚本,可以引用其他窗口。浏览器提供了一些特殊变量,用来返回其他窗口。
top:顶层窗口,即最上层的那个窗口
parent:父窗口
self:当前窗口,即自身
与这些变量对应,浏览器还提供一些特殊的窗口名,供window.open()方法、标签、
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/106113.html
摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...
摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...
摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...
摘要:原文地址对象和对象的区别对象和对象使用说明,需要的朋友可以参考下。同样,对象也不能使用方法。学习开始就应当树立正确的观念,分清对象和对象之间的区别,之后学习就会轻松很多的。 原文地址:http://www.cnblogs.com/yellow... DOM对象和JQuery对象的区别 jQuery对象和DOM对象使用说明,需要的朋友可以参考下。jQuery对象和DOM对象第一次学习jQ...
摘要:对象的分类内置对象原生对象就是语言预定义的对象,在标准定义,有解释器引擎提供具体实现宿主对象指的是运行环境提供的对象。不过类型是中所有类型的父级所有类型的对象都可以使用的属性和方法,可以通过的构造函数来创建自定义对象。 对象 javaScript中的对象,和其它编程语言中的对象一样,可以比照现实生活中的对象来理解。在JavaScript中,一个对象可以是一个单独拥有属性和类型的实体。和...
阅读 2812·2023-04-25 20:06
阅读 1430·2021-08-26 14:15
阅读 2183·2021-08-12 13:27
阅读 1744·2019-08-30 15:55
阅读 3431·2019-08-30 13:20
阅读 2801·2019-08-29 15:12
阅读 3308·2019-08-29 15:06
阅读 2837·2019-08-29 14:13