首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MSIE如何提醒“未知”?

MSIE如何提醒“未知”?
EN

Stack Overflow用户
提问于 2012-07-14 01:43:33
回答 3查看 114关注 0票数 2

出于某种目的,我希望将Window.Event对象缓存到变量中,然后使用它,但是MSIE一直告诉我,这是“未知的”。

只要在IE中运行下面的代码,你就会明白我的意思。

我只想问一问这怎么会发生?我错过了什么吗?

html:

代码语言:javascript
运行
AI代码解释
复制
<button id='btn'>Click!!!</button>

JS:

代码语言:javascript
运行
AI代码解释
复制
    var eventObj = null;
    document.getElementById('btn').onclick = function() {
       eventObj = window.event;
       setTimeout(function() {
          alert(typeof eventObj.srcElement);
       }, 1000)
    }

EIDT 1:

我已经搜索了一些由其他人完成的测试,请参见下面的内容:

HTML :

代码语言:javascript
运行
AI代码解释
复制
<button id='btn1'>Click 1 !!</button>
<button id="btn2">Click 2 !!</button>

JS

代码语言:javascript
运行
AI代码解释
复制
var btn1EventObj = null;
document.getElementById('btn1').onclick = function() {
    btn1EventObj = window.event;
    alert(btn1EventObj.srcElement.id);
}
document.getElementById('btn2').onclick = function() {
    alert(btn1EventObj === window.event); // output:false;
    alert(btn1EventObj.srcElement === window.event.srcElement); // output: true ; 
    alert(btn1EventObj.srcElement.id); // output: btn2 ;
}

单击btn1EventObj,后,我假设我在btn1中缓存‘’,然后单击btn2:

测试:

btn1EventObj === window.event -> false; // MSIE中不仅存在一个事件对象

btn1EventObj.srcElement === window.event.srcElement -> true // I无法理解下面的内容。

btn1EventObj.srcElement.id ->btn2

小提琴

所以,以上所述都告诉我,在MSIE中引发的所有事件都是共享属性,当单击btn2时,前面的所有属性都会被后面的属性覆盖?

我说得对吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-14 02:12:26

在IE中,不能将window.event从实际事件的上下文中复制出来。换句话说:当您在脚本中分配处理程序时,没有存在的事件。如果要引用window.event,则必须将处理程序分配为内联。

MSDN:

代码语言:javascript
运行
AI代码解释
复制
The event object is available only during an event—that is,
you can use it in event handlers but not in other code.

HTML:

代码语言:javascript
运行
AI代码解释
复制
<button id='btn' onclick="clicker(event);">Click!!!</button>

和联合来文:

代码语言:javascript
运行
AI代码解释
复制
function clicker(e){
    setTimeout(function (){
        alert(e.srcElement);
    },1000);
    return;
}

MSDN中的event

票数 1
EN

Stack Overflow用户

发布于 2012-07-14 01:52:24

`window.event‘是一个全局对象,可以在引发的每个事件上进行更改。许多事件在毫秒内在浏览器上引发。

注意:

如果您将对象设置为var y = someObject y 对象没有复制到y变量中,则 y 变量只包含内存中对象的地址(您可以在google上搜索对象引用和指针).so,您需要将对象复制到 y ,或者尝试下面的替代解决方案:E 221

因此,您需要使用function(e){}样式的事件处理程序:

代码语言:javascript
运行
AI代码解释
复制
var eventObj = null; 
document.getElementById('btn').onclick = function(e) { 
   eventObj = e;
   setTimeout(function() { 
      alert(typeof eventObj.srcElement); 
   }, 1000) 
} 

小提琴上看这个

编辑1:

在M$ IE中,您可以使用以下代码:

代码语言:javascript
运行
AI代码解释
复制
function copyObject(o){
    return {srcElement: o.srcElement,
           ...
           more attributes ...
            };
}

var eventObj = null; 
document.getElementById('btn').onclick = function(e) { 
   eventObj = copyObject(window.event);
   setTimeout(function() { 
      alert(typeof eventObj.srcElement); 
   }, 1000) 
} 

小提琴手(编辑)

票数 1
EN

Stack Overflow用户

发布于 2012-07-14 02:40:21

代码语言:javascript
运行
AI代码解释
复制
var eventObj = null;
document.getElementById('btn').onclick = function() {
   eventObj = window.event;
   setTimeout((function(eventObj) {
      alert(typeof eventObj.srcElement);
   })(eventObj), 1000)
}

演示。

事件对象仅在事件期间可用--也就是说,您可以在事件处理程序中使用它,但不能在其他代码中使用它,而且您正在使用setTimeout,因此在执行事件之后它是不可用的,因为为了避免冲突,IE将其设置为null,在1秒后不可用,因此可以使用闭包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11482691

复制
相关文章
Texworks拼写检查
我使用的是Tex Live2015,其中自带的编辑器 Texworks是不自带拼写检查的,那么我们书写英文单词的时候需要Word那样的拼写检查怎么办?
卡尔曼和玻尔兹曼谁曼
2019/01/22
2.3K1
linux建立拼写检查程序spell命令
1) spell命令默认未安装,可使用apt-get install xview-clients来安装
用户1685462
2021/07/24
9840
LeetCode 966. 元音拼写检查器(哈希)
在给定单词列表 wordlist 的情况下,我们希望实现一个拼写检查器,将查询单词转换为正确的单词。
Michael阿明
2020/07/13
6400
Python | 21行轻松搞定拼写检查器
链接:http://blog.csdn.net/Pwiling/article/details/50573650
用户1634449
2018/09/21
6900
Python | 21行轻松搞定拼写检查器
QQ浏览器拼写检查如何关闭?
看了下内核逻辑,默认是开启的,暂时没有办法关闭,我们准备在设置项增加一个选项,可以开启或者关闭,预计下个版本11.6.0发布
Windows技术交流
2023/01/09
1.5K0
python实现拼写检查器21行轻松搞定
引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供非常好的拼写检查,比如你输入 speling,谷歌会马上返回 spelling。 下面是用21行python代码实现的一个简易但是具备完整功能的拼写检查器。 代码 import re, collections def words(text): return re.findall('[a-z]+', text.lower()) def train(features): model = collections.defaul
小小科
2018/05/02
1.5K0
python实现拼写检查器21行轻松搞定
python实现拼写检查器21行轻松搞定
除了这段代码外,作为机器学习的一部分,肯定还应该有大量的样本数据,准备了big.txt作为我们的样本数据。
小小科
2018/09/28
8110
如何关闭新版ReSharper的拼写检查
ReSharper 是很多.NET程序员喜欢的收费插件,其提供的强大生产力和代码纠错能力已经让包括我在内的一些程序员产生了依赖,以至于离开它可能就写不来代码了。
Edi Wang
2019/07/10
3.3K0
如何关闭新版ReSharper的拼写检查
Intellij IDEA取消拼写检查的方法
打开设置,Editor > Inspections,勾选掉Spelling。 取消拼写检查
飞奔去旅行
2019/06/13
2.2K0
Intellij IDEA取消拼写检查的方法
在 Linux 命令行上编辑 PDF
你收到的许多文件都是 PDF 格式的。有时这些 PDF 需要进行处理。例如,可能需要删除或添加页面,或者你可能需要签署或修改一个特定的页面。
用户1880875
2021/09/07
2.1K0
关闭 SublimeText 3.2.2 Build 3211 的拼写检查
在更新 SublimeText 之后,发现所有的字符下面都有波浪线,这是新版本的 SublimeText 提供的拼写语法功能,然而我不需要此功能。本文来告诉大家如何关闭
林德熙
2021/11/15
1.1K0
简单好用的英文拼写检查工具codespell
网上冲浪看到了一个简单好用的英语单词拼写检查工具 codespell,测试发现真的好用,一键安装&一键开箱使用,没有比这更美好的体验了,下面展开说下流程。
王云峰
2023/10/23
6100
使用贝叶斯做英文拼写检查(c#)
贝叶斯算法可以用来做拼写检查、文本分类、垃圾邮件过滤等工作,前面我们用贝叶斯做了文本分类,这次用它来做拼写检查,参考:How to Write a Spelling Corrector 拼写检查器的原理 给定一个单词, 我们的任务是选择和它最相似的拼写正确的单词.   对应的贝叶斯问题就是, 给定一个词 w, 在所有正确的拼写词中, 我们想要找一个正确的词 c, 使得对于 w 的条件概率最大, 也就是说: argmaxc P(c|w) 按照贝叶斯理论上面的式子等价于: argmaxc P(w|c) P(c)
JadePeng
2018/03/12
1.4K0
使用贝叶斯做英文拼写检查(c#)
如何正确调教 Visual Studio 自带的拼写检查功能
Visual Studio 2022 (17.6 Preview 2) 带来了拼写检查功能,此功能一出大家纷纷吐槽各种问题。不过团队中确实时不时会出现单词拼写错误的情况,所以有时又觉得非常需要它。
walterlv
2023/10/23
3.7K0
如何正确调教 Visual Studio 自带的拼写检查功能
字典树与实际应用:拼写检查与搜索建议
👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.
Lorin 洛林
2023/11/14
2830
字典树与实际应用:拼写检查与搜索建议
Linux服务器检查性能瓶颈
如果Linux服务器突然访问卡顿变慢,负载暴增,如何在最短时间内找出Linux性能问题所在?
码客说
2022/01/25
4.4K1
Linux服务器检查性能瓶颈
如何检查linux服务器后门
在Linux系统里植入账户后门是一个极其简单高效的管理权限维持办法。hack在获得目标系统权限的情况下,利用建立一个操作系统账户当做持久化的聚集点,如此一来随时都可以利用工具链接到目标操作系统,实现对目标服务器进行长期操控的目的。依据获得的shell方式不一样,建立操作系统账户的办法也不尽相同,一般shell方式可分为交互模式和非交互模式这两种情况:
技术分享达人
2022/11/15
2.2K0
贝叶斯推断及其互联网应用(三):拼写检查
(这个系列的第一部分介绍了贝叶斯定理,第二部分介绍了如何过滤垃圾邮件,今天是第三部分。) 使用Google的时候,如果你拼错一个单词,它会提醒你正确的拼法。 比如,你不小心输入了seperate。 G
ruanyf
2018/04/13
1.7K1
贝叶斯推断及其互联网应用(三):拼写检查
【IEDA】Typo: In woed 'xxx' more...(Ctrl + F1) 拼写检查
  不知道大家有没有发现,在我们用 IDEA 敲击代码的时候,经常会发现如下所示的现象:
黑泽君
2019/05/25
1.4K0
面向Java开发者的ChatGPT提示词工程(10)拼写检查、语法检查及应用实例
在ChatGPT的众多应用中,拼写检查和语法检查犹如璀璨的明珠,受到广大用户的热烈追捧。我对此深信不疑,且一直在实践中坚定不移。特别是在使用非母语的情况下,它的作用更为显著。接下来,让我们通过一些常见的拼写和语法问题的实例,一探ChatGPT如何巧妙地帮助我们解决这些难题的神奇之处。
万猫学社
2024/01/25
2700
面向Java开发者的ChatGPT提示词工程(10)拼写检查、语法检查及应用实例

相似问题

当响应模式图标不能正确显示时

42

为什么在css定义中不能显示图标

10

为什么lnk图标不能正确显示?

10

为什么幻影不能正确显示图标?

10

为什么使用CSS时图像不能正确显示?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档