小心onpropertychange在ie8上的地雷

2023-11-23 14:08

本文主要是介绍小心onpropertychange在ie8上的地雷,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天遇到一个很神奇的bug,网站上面有个表单提交的页面需要做是否离开此页的功能(就是如果修改了表单后未保存就离开这个页面),之前做这个功能的人为了方便就把input标签写成这样:

<input id="a" type="text" onpropertychange="check()" />
最近做了一些功能扩展,于是前端那边就直接按照这种写法写进去。

然后在写js的时候,又加了一段:

$(document).ready({$("#a").bind('blur',function(d){....});
});
然后就发现在ie8上面,没有修改表单也会出现提示。

调试了一下,没有发现任何代码的错误。而且只有在ie8上才回重现这个bug。想想之前改过的那些操蛋的ie8的bug。我开始在ie8上面找问题。

onpropertychange的话,只要当前对象属性发生改变,都会触发事件,而且这个玩意是ie专属的

好吧,进入ie8的调试模式,发现页面在加载的时候顺便触发了#a的onpropertychange事件。于是我猜想是不是那段#a的blur代码影响了,将blur事件换乘οnblur="ablur();",居然真的好了

后面尝试了一下,原来ie8判断在js上为标签添加的事件都属于属性的变化,所以会触发onpropertychange事件。

这篇关于小心onpropertychange在ie8上的地雷的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/418462

相关文章

如何删除不小心上传到git远程仓库中的.idea .iml文件

如果在开始的时候不配置,gitignore文件或者文件配置不正确,初始化上传的时候就会有一些不必要的信息上传上去 如果已经存在了一些文件在git远程仓库中,如。idea,.iml文件等。 首先在项目中定义一个  .gitignore文件,简单的实例如下也可以用idea中的gitignore插件 .DS_Storeclasses/*.settings/target/.classpath

苹果不小心删除了照片怎么恢复?这5个方法都能解决

“天啊,不小心把手机上的照片删除了怎么办?相册里保存了很多重要的照片。”别慌,这些都是小事儿!小编这有5个可以解决不小心删除了照片怎么恢复问题的方法,只要你掌握了这些恢复技巧,那恢复被删除的照片就是分分钟的事。赶紧跟上小编的脚步,让小编带你看看这些方法的实用之处吧。 方法一:使用数据恢复工具恢复删除的照片 苹果手机删了的照片如何找回?用专业的数据恢复工具快速找回!数据 蛙苹果恢复专家,

Windows系统下不小心把输入法切换成了繁体怎么办

快捷键:Ctrl + Shift + F 参考 Windows微软中文输入法总是不小心切换成了繁体怎么办?

小心GitHub账号被盗

最近有小伙伴反馈在 GitHub 上解压了不明文件之后,GitHub 账号被盗了。 事情是这样的: 有小伙伴在 GitHub 某仓库的 issue 中正常和人讨论问题,有个人光速回复了一条消息,给了一个链接,让下载一个名为 fix.rar 的文件。小伙伴把文件下载下来之后解压,里边有 ranlib 相关的文件,让他下载 fix.rar 文件的人之后又光速删除了帖子,他也没太在意,以为别人回复

iPhone备忘录不小心删除了怎么办?

在日常使用iPhone的过程中,备忘录作为我们记录重要信息、灵感闪现和日常琐事的小帮手,其重要性不言而喻。然而,有时候因为操作失误或是不小心点击,我们可能会将珍贵的备忘录内容删除,这无疑会让人感到焦虑与不安。但请放心,即使iPhone备忘录不小心被删除了,也并非没有挽回的余地。今天,我们就来探讨几种有效的恢复方法,帮助你找回那些遗失的记忆。 一、利用“最近删除”文件夹 iPhone的备忘录应用

不小心填错了软考报名信息,可以修改吗?

软考报名信息的准确性至关重要,它直接关系到考生的考试资格及后续流程。若不慎填写错误,别担心,根据发现错误的时间点,下面是详细的修改指南。 一、报名审核前 情况说明:若您在报名审核前发现信息填写错误,可以轻松修改。 操作步骤: 登录官网:访问软考办官方网站,进入报名入口,选择报考省份并登录您的账号。 进入报名页面:在左侧菜单中找到【考生报名】选项,点击进入。 修改信息:在报名表最下方,点

小心 ------ .NET(2)

DataRow获取或设置指定列中存储的数据时,可以使用row[0]或者row[“Name”],假定Name字段是SELECT 语句中的第一个字段,那么这两种方法在功能上是一样的,但后者比前者慢一些。原因是文本方法是从模式的内部查找列号,再使用序列号进行访问。 当获取的数据量比较大时,或许row[0]的写法可以让数据返回的更快一些儿!!!

小心 ------ javascript(6)

jQuery中text方法与val方法的一点区别,唉~~~现在才知道,看说明文档的时候没看仔细啊!!! .text() 方法不能使用在 input 元素或scripts元素上。 input 或 textarea 需要使用 .val() 方法获取或设置文本值。 <input id="txtTest" value="val" /><button id="btnVal">Val</butto

小心 ------ .NET(1)

调用默认的构造函数(new List<>()),就可以创建列表对象。 使用默认的构造函数创建一个空列表。元素添加到列表中后,列表的容量就会扩大为可接纳4个元素。如果添加了第5 个元素,列表的大小就重新设置为包含8 个元素。如果8 个元素还不够,列表的大小就重新设置为包含16 个元素。每次都会将列表的容量重新设置为原来的2 倍。 如果列表的容量改变了,整个集合就要重新分配到一个新的内存块中。在L

小心 ------ javascript(5)

在JavaScript中创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针(指向一个对象),而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。 使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。 function JaXiang() {}JaXiang.prototype.location = "Luo Yang";JaXiang.proto