你是如何理解var e=e||window.event的------Day26

2023-05-16

你是如何理解var e=e||window.event的?相信很多人都能给我个回答说是:为了实现多种浏览器兼容。

不错,确实是为了实现浏览器兼容,但是它又是如何实现浏览器兼容的呢?

其实,如果把他写全的话,就好理解多了吧。

function(event){

var e=event?event||window.event;

}

这样来看的话,相信粗懂java的人都会知道了,如果存在event,那么var e=event;而如果不存在event,那么var e=window.event.这样的话我们就可以从字面上理解了个公式的意思,也能大体猜到的确能够实现兼容的。



但是我们再来细挖一下,它在究竟在什么浏览器下等于什么呢,又是为什么呢?我们先附上一个神图:


首先:我们进行ie和其他浏览器的判断

ie的document对象有一个all属性,它的里面存放了页面的所有标签,而其它浏览器是没有的,所以在ie中,事件对象的传播会绑定在全局的windows上,所以ie浏览器肯定是都支持window.event的

其次:特殊的firefox

firefox只支持事件对象作为参数传入,而这又恰恰是ie6/ie7/ie8所无法实现的,所以可以成功的区分这两类,写个实例进行测试的话,如下:

var btn = document.getElementById('btn');//一个按钮
btn.onclick = function(event){//给btn绑定一个点击事件
  //其他浏览器会在点击发生的时候,把事件对象当作参数传递过来
  alert('其他浏览器:' + event);
  //在ie浏览器中,这个event变量是空,它会在全局的window上
  alert('ie浏览器:' + window.event);
}
最后,就是ie9/chrome/opera/safari,则两种方式都支持,仅凭这点很难判定浏览器类型

但是,只要写上var e=event?event||window.event,我们的确是可以保证各浏览器的兼容的,你说对么


最近项目开始加速啊,累死啊,要睡了




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

你是如何理解var e=e||window.event的------Day26 的相关文章

  • 使用 VB.NET 删除另一个程序的框架/窗口/边框(Aero 位)

    有没有办法从 VB NET 程序中删除另一个应用程序窗口 例如记事本 的边框 框架 Aero 位 您可以使用 P Invoke 来做到这一点 下面是一些使用的代码设置窗口长度 http msdn microsoft com en us li
  • PeekMessage 收不到消息?

    我创建了一个自定义消息类型 用于调整我的大小Window 称为WM NEED RESIZE 我已在 h 文件中定义它 并在 cpp 文件中初始化 我也注册了我的WindowProc接受消息的功能 以下是这些项目的代码 const uint3
  • 如何在 bash 脚本中执行命令,然后聚焦出现的窗口

    我有一个像这样的 bash 脚本 bin sh firefox Firefox 窗口打开 但没有焦点 我该怎么做才能让它自动获得焦点 我可以使用一些 X 窗口工具 命令 但如何获取 Firefox 的窗口 ID 窗口名称随着显示的 URL
  • ios 访问主窗口或视图

    我想知道是否有一种简单的方法可以访问 IOS 中的主窗口或视图 类似于 UIScreen mainScreen 谢谢 Try UIWindow frontWindow UIApplication sharedApplication wind
  • 如何将 shm pixmap 与 xcb 一起使用?

    我尝试学习如何使用 xcb 库中的共享内存像素图 你们中有人有这方面的经验并想分享示例代码和 或信息吗 这会很有帮助 Thanks 经过一些研究 我发现了如何在 xcb 中使用共享内存像素图 这是我的测试代码 include
  • 将 vim 的强大功能融入 WM:模态窗口管理? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我是 Vim 的忠实粉丝 并且在很大程度上坚持极其高效的模式编辑风格 在使用 Vim 一些经验之后 我决定使用其他分享其高效 快速键盘使用理念的软件
  • 为什么我设置xlib窗口背景透明失败?

    我使用以下代码获得透明窗口 但它返回黑色 我出了什么问题 并且 任何人都可以给我一个简单的例子来创建具有透明背景的窗口吗 谢谢 include
  • Win32中RedrawWindow和UpdateWindow有什么区别?

    Win32中RedrawWindow和UpdateWindow有什么区别 既然它们似乎有相同的目的来刷新窗口 那么有什么区别呢 RedrawWindow通常用于立即强制重绘整个窗口 或其中的某些指定区域 UpdateWindow将强制仅重绘
  • 为回归方程选择适当的滞后以及如何解释 VARselect 结果

    我的问题有两个方面 如何为回归方程选择合适的滞后 我有房价的因变量 以及租金 房屋供应 国家股市指数 抵押贷款利率和房屋空置率的自变量 我读了一些书 发现VARselect data lag max 1 or 2 or 3 etc 可以帮助
  • SDL2 升起窗口而不给予焦点

    我需要在窗口上显示工具提示 我正在使用工具提示创建第二个窗口 并使用 SDL RaiseWindow 将其带到顶部 然而 这样做会导致工具提示窃取焦点 这不是我想要的 有没有办法在不改变焦点的情况下将窗口置于顶部 另外 有没有办法在不改变窗
  • 如何增加 jQuery 变量?

    我正在尝试使用 jquery 浏览图片库 因此我有一个按钮 该按钮应该将变量加 1 然后使用它来加载下一张图片 使用最上面的答案this https stackoverflow com questions 11338499 incremen
  • 在窗口中的标题栏内/上方添加用户控件

    在 WPF 中 我想在窗口的标题栏中 上方添加一个 userControl 如下所示 红色部分是UserControl 绿色部分是标题栏 现在我希望能得到你的一些建议 需要扩展Window类或者只是自定义Window的样式 最好提供源码 您
  • createwindow(...)之后,如何给窗口赋予颜色?

    我创建了一个窗口 其句柄是handle parent 然后我创建了一个子窗口 如下所示 hwnd child CreateWindow child class name T WS CHILDWINDOW 0 0 0 0 hwnd paren
  • 如何禁止chrome打开“新窗口”和“标签”?

    他们是否可以通过 Chrome 浏览器设置将互联网上的所有页面保留在一个窗口中 或者我可以用一个插件 插件来做到这一点 当我单击某些链接时 我不希望在新选项卡和 或新窗口中打开网页 如果有人有任何建议请告诉我 谢谢 a href http
  • C++/SFML 显示故障,通过鼠标单击更改精灵成员

    我正在学习 C SFML 作为练习 我正在制作一个小程序 在窗口中显示 64x64 像素方形棕色精灵的 10x10 网格 该程序允许您使用键盘选择绿色 黄色 蓝色 灰色 棕色方形精灵 并用该选定的精灵替换所述网格上的任何图块 游戏循环如下
  • 无法打开目标 = 空白的 Electron webview 链接

    我正在使用 Electron 我有一个显示外部网站的 webview 但我无法成功显示通常由该网站上的链接打开且目标 blank 的附加窗口 a href mentions html target blank Mentions l gale
  • 如何检测并突出显示鼠标悬停时的矩形

    我在 C net 中创建了一个 Windows 应用程序控件 以图形模式显示一些对象 为此 我根据列表中的项目数量创建了一个矩形 并使用 Control OnPaint 事件将其绘制在控件上 现在 如果鼠标悬停在该矩形上 我想突出显示该矩形
  • .NET WPF 窗口淡入和淡出动画

    下面是窗口淡入和淡出动画的代码片段 Create the fade in storyboard fadeInStoryboard new Storyboard fadeInStoryboard Completed new EventHand
  • 在 JavaScript 中引用 C# 变量

    我已经阅读了很多线程 但我不明白为什么这不起作用 我正在创建一个将用作导航栏的 SharePoint Web 部件 一切都很顺利 直到我尝试在 JS 代码中引用 C 变量 这是来自 VisualWebPart1UserControl asc
  • 使用Javascript自动打开弹出新窗口[重复]

    这个问题在这里已经有答案了 如何使用Javascript加载页面时打开弹出新窗口 我希望 当网站加载时 它会自动打开弹出新窗口 我使用以下内容 不行 尝试这个

随机推荐

  • C语言a+++b的问题

    有时候有这道面试题 xff1b int a 61 5 b 61 7 c c 61 a 43 43 43 b 在VC 43 43 里面看一下 xff1b 输出 xff1b 首先 a 43 43 43 b 和a 43 43 43 b俩个表达式概
  • Robocup 仿真2D 学习笔记(一) ubuntu16.04 搭建 robocup 仿真2D环境

    前言 robocup2D 是一个仿真机器人足球比赛 xff0c 也是一个研究多智能体强化学习等机器学习理论算法的优秀平台 xff0c 在接下来的一段时间 xff0c 通过学习如何在robocup2D仿真比赛中运用机器学习算法 xff0c 提
  • Vue - v-for 中为什么不能用 index 作为 key

    目录 1 先来看一个例子 2 上述问题的解决方法 3 高效的 Diff 算法原理 4 不能用 index 作为 key 这是一篇脱坑日记 xff0c 在做项目的过程中 xff0c 我使用了 v for 渲染子组件时 xff0c 并将 ind
  • docker安装centos7镜像

    拉取centos7镜像 root 64 localhost docker pull centos 7 启动镜像centos7 xff0c 如果不指定 bin bash xff0c 容器运行后会自动停止 root 64 localhost d
  • Debian apt update 提示 由于没有公钥,无法验证下列签名...

    sudo apt update 忽略 1 http mirrors aliyun com debian stretch InRelease 命中 2 http mirrors aliyun com debian security stret
  • java this的用法

    用类名定义一个变量的时候 xff0c 定义的只是一个引用 xff0c 外面可以通过这个引用来访问这个类里面的属性和方法 public class ThisDemo String name 61 34 Mick 34 public void
  • CSDN 博客备份工具

    前言 核心 登录模块 备份模块 博文扫描模块 演示 如何使用 效果 总结 前言 近段时间以来 听群友博友都在谈论着一件事 CSDN博客怎么没有备份功能啊 这其实也在一定程度上表征着大家对于文章这种知识性产品的重视度越来越高 也对于数据的安全
  • 数据链路层传输故障分析

    数据链路层传输故障分析 依据链路层发送与接收的帧格式 xff0c 说明在数据链路层 网络层 传输层接收数据的过程中 xff0c 出现以下情况时 xff0c 可能出现的问题是什么 xff1f A xff09 利用网络助手可以在接收端接收到发送
  • 【Qt串口调试助手】1.2 - 串口数据接收不发生换行,CH340 / CP2102 多硬件兼容

    上一篇提到 xff1a 对串口接收的显示 xff0c 使用的是当前位置插入 43 移动鼠标光标到末尾的方式 这种方法可以有效解决 串口数据接收发生换行的问题 xff0c 并且解决 CH340 CP2102 多硬件显示结果不一致的问题 那有没
  • Altium AD20的四层板叠层管理、平面层20H内缩

    AD新建的PCB默认为双层板 xff0c 多层板需要自行添加叠层 下面以四层板为例进行说明 AD20的叠层管理 xff0c 叠层为四层板 工具 层叠管理器 xff08 快捷键 xff1a D K xff09 能够看出这是一个普通的双层板结构
  • 开源10轴IMU PCB,基于MEMS传感器MPU6500-HMC5983-AK8975-BMP280-MS5611设计,适用于多轴无人机、平衡车、惯导入门

    以MPU6500 HMC5983 AK8975 BMP280 MS5611为传感元件的10轴IMU PCB xff0c 集成MEMS加速度计 陀螺仪 地磁 气压计 有三种不同尺寸的PCB组合样式 xff0c Altium格式 xff0c 可
  • 操作系统任务执行和任务切换的基本实现原理

    任务的执行 软件或处理器可以使用以下方法之一来调度执行一个任务 xff1a 使用CALL指令明确地调用一个任务 xff1b 使用JMP指令明确地跳转到一个任务 Linux内核使用的方式 由处理器 隐含地调用一个中断句柄处理任务 xff1b
  • AD20 PCB导出Gerber、拼板,华秋DFM一键拼板,同理支持其他PCB EDA软件的Gerber导入与拼板

    Altium PCB的拼板着实头疼 xff0c 因没有自带的拼板功能 xff0c 每次都要手动重复同样的操作 xff0c 费时费力 xff0c 有没有种简单的方法呢 xff1f 这里推荐华秋DFM 华秋DFM是一款高效的PCB设计软件 xf
  • 安装win11电脑必须支持TPM2.0和必须支持安全启动的解决方法

    安装win11电脑必须支持TPM2 0和必须支持安全启动的解决方法 一 开启TPM设置二 开启安全启动设置三 更改硬盘模式 xff08 需硬盘支持 xff09 安装 Win11 的基本要求 xff0c 在win11最低要求是提示 xff0c
  • QCY T8无线蓝牙耳机连接电脑时无限断连解决办法

    参考 xff1a https www zhihu com question 434919223 answer 1652118128 知乎问题中十三大佬的回答亲测有效 xff0c 记录一下 在win10连t8时会出现一个音频类别的QCY T8
  • Linux 高并发服务器实战 - 5 项目实战

    Linux 高并发服务器实战 5 项目实战 1 阻塞 非阻塞 同步 异步 网络IO 典型的一次IO的两个阶段是什么 xff1f 数据就绪 和 数据读写 网络IO阶段1 在操作系统 TCP接收缓冲区 数据就绪 xff1a 根据系统IO操作的就
  • js实现打字机效果---Day06

    我常想象这样一幅画面 xff1a 素雅的大背景 xff0c 伴着可心的音乐 xff0c 优雅旋转着的芭蕾舞者 xff0c 旁边那不断打出的文字 xff0c 仿佛就这样娓娓道来他们那美美的故事 xff1b 也常想象 xff1a 呼喇啦甩动的大
  • 纯css3实现漂亮的对话框----Day07

    姑且先不来讨论css3跟css的区别 xff0c 也不说html和html5的不同 xff0c 虽然这很关键 xff0c 但是现阶段还真的没整利落了 xff0c 姑且就这些应用先用着 xff0c 等自己有些见解了再来探讨那些深层次的问题 先
  • 纯css3实现饼状图-------Day21

    现代网站在商务应用中比较广泛 xff0c 什么oa xff0c 什么erp xff0c 除了导入导出 xff0c 就是数据统计 xff0c 再不然就来个做个报表 xff0c 而饼状图作为数据的一种直观统计显示 xff0c 应用是非常广泛的
  • 你是如何理解var e=e||window.event的------Day26

    你是如何理解var e 61 e window event的 xff1f 相信很多人都能给我个回答说是 xff1a 为了实现多种浏览器兼容 不错 xff0c 确实是为了实现浏览器兼容 xff0c 但是它又是如何实现浏览器兼容的呢 xff1f