当前位置: 首页 > 面试题库 >

使用window.onload的最佳实践

居琛
2023-03-14
问题内容

我开发Joomla网站/组件/模块和插件,并且每隔一段时间我都需要使用JavaScript来加载页面时触发事件的功能。在大多数情况下,这是使用window.onload函数完成的。

我的问题是:

  1. 这是在页面加载时触发JavaScript事件的最佳方法,还是有更好/更新的方法?
  2. 如果这是触发页面加载事件的唯一方法,那么确保多个事件可以由不同的脚本运行的最佳方法是什么?

问题答案:

window.onload = function(){};可以,但是您可能已经注意到, 它只允许您指定1个listener

我想说,这样做的更好/更新的方法是使用框架,或仅使用本机addEventListenerattachEvent(对于IE)方法的简单实现,这也允许您
删除 事件的侦听器。

这是跨浏览器的实现:

// Cross-browser implementation of element.addEventListener()
function listen(evnt, elem, func) {
    if (elem.addEventListener)  // W3C DOM
        elem.addEventListener(evnt,func,false);
    else if (elem.attachEvent) { // IE DOM
         var r = elem.attachEvent("on"+evnt, func);
         return r;
    }
    else window.alert('I\'m sorry Dave, I\'m afraid I can\'t do that.');
}

// Use: listen("event name", elem, func);

对于window.onload情况,请使用: listen("load", window, function() { });

编辑 我想通过添加其他人指出的宝贵信息来扩大答案。

这与 DOMContentLoaded (Mozilla,Opera和webkit夜间软件当前支持)和
onreadystatechange (适用于IE) 事件有关 ,这些 事件 可以应用于 文档
对象,以了解何时可以操作文档(无需等待所有图像/样式表等)。 ..载入)。

跨浏览器对此有很多“ hacky”实现,因此,我强烈建议为该功能使用框架



 类似资料:
  • 问题内容: 我有一个普通的Node.js脚本,该脚本通过API从Wikipedia中提取数据并将其存储在SQLite数据库中。我正在使用此node- sqlite3 模块。 在某些情况下,我要提取多达60万篇文章中的数据,并在数据库中连续存储有关每篇文章的一些元数据。从API中以500为一组检索文章。 检索带有500条文章中的数据的JSON对象的请求将对象传递给此回调: 这些模块默认情况下并行运行

  • 让我们看一下使用两种不同的方式去计算单词的个数,第一种方式使用 reduceByKey 另外一种方式使用 groupByKey: val words = Array("one", "two", "two", "three", "three", "three") val wordPairsRDD = sc.parallelize(words).map(word => (word, 1)) val

  • 目前我正在一个项目中工作,我们正在编写面向对象的JavaScript。在本项目中,我看到了定义类的两种不同方式: 1:在原型上立即声明函数 2:在原型上准备每个功能 基于这两个给定的示例,JavaScript的行为有什么不同吗?还是只是风格上的不同? 就我个人而言,我没有看到任何行为上的差异,但我有一种感觉,那就是一定有一种微妙的差异,而我目前正错过这种差异。 除此之外。我想知道这是一种常见的做法

  • 本文向大家介绍window.onload使用指南,包括了window.onload使用指南的使用技巧和注意事项,需要的朋友参考一下 网页中的javascript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式: 一.将脚本代码放在网页的低端,这样在运行脚本代码的时候,可以确保要操作的对象已经加载完成。 二.通过window.

  • 这里有些给使用和编写 Ansible playbook 的贴士. 你能在我们的 ansible-example repository.找到展示这些最佳实践的 playbook 样例.(注意: 这些示例用的也许不是最新版的中所有特性,但它们仍旧是极佳的参考.) Topics 最佳实践 接下来的章节将向你展示一种组织 playbook 内容方式. 你对 Ansible 的使用应该符合你的需求而不是我们

  • 处理后台任务与常规调用方法有很大的不同。本指南旨在帮助让您的后台任务平稳有效地运行。本文基于 这篇博客文章。 使任务参数小而简单 方法(任务)在调用之前会被序列化。使用 TypeConverter 类将参数转换为 JSON 字符串。如果您有复杂的实体和 / 或大对象; 包括数组,最好将它们放入数据库,然后只将其标识 (id) 传递给后台任务。 错误例子: public void Method(En