在phpor的博客上看到一篇文章:
http://phpor.net/blog/post/779/
有这么一段代码:
<input type="text" id="name" />
<input type="text" id="password" />
<script>
var $ = function (id) { return document.getElementById(id);};
$("name").focus();
$("name").blur();
$("name").onfocus = function () {alert('haha');}
</script>
<input type="text" id="name" /> <input type="text" id="password" /> <script> var $ = function (id) { return document.getElementById(id);}; $("name").focus(); $("name").blur(); $("name").onfocus = function () {alert('haha');} </script>
如果运行在FF下面,像我们期望的那样,在页面载入后,不会立即alert的,但是,在IE7中,页面载入后立即就是一个alert。 显然onfocus事件的绑定被提前做了,不知道为什么。
可恶的IE7!!!
感觉像是onfocus提前执行了,如果将onfocus放在闭包中执行,由于要使用作用域链,就不会出现提前的情况了,谁能解释一下IE这么做的原因?
分享到:
相关推荐
### JavaScript执行顺序详解 #### 一、HTML文档流与JavaScript执行顺序 JavaScript作为一种网页脚本语言,其执行顺序直接影响到脚本的运行效果和页面的行为。理解JavaScript代码是如何按照顺序被执行的是开发高...
ie不执行javascript修复ie不执行javascript修复ie不执行javascript修复 当IE不能正常运行时,打开该工具就可以了,自动修复
JavaScript是Web开发中不可或缺的一部分,而作为曾经主流的浏览器,Internet Explorer(IE)提供了自己的JavaScript调试工具,使得开发者能够有效地追踪和解决代码中的问题。在IE的JavaScript调试工具中,有多个关键...
#### 一、JavaScript执行顺序概览 JavaScript作为一种广泛应用于Web开发的编程语言,其执行过程对于理解程序的行为至关重要。在深入探讨JavaScript的执行过程前,我们先来看一下HTML文档中JavaScript代码的执行顺序...
这个问题可能是因为 IE 在 `document.write()` 时,并未等待加载 SRC 中的 JavaScript 代码完毕后,才执行下一行,所以导致 2 先弹出,并且执行到 `document.write('alert("我是" + tmpStr)')` 调用 tmpStr 时,...
JavaScript在页面加载时的执行顺序是网页开发中的核心概念,对于理解JavaScript如何与HTML交互至关重要。以下是对这个主题的详细...开发者应当注意代码组织和加载策略,以确保在不同的浏览器环境下都能得到预期的效果。
以一个示例来解释脚本执行顺序,我们可以考虑两个JavaScript文件(1.js和2.js)的加载。当这两个文件通过`<script>`标签按顺序引入时,无论它们是否并行下载,1.js总是在2.js之前执行。这可以通过延迟发送文件内容的...
以下是一些解决IE不能运行JavaScript的方法: 1. **启用JavaScript**:首先检查IE浏览器的设置,确保JavaScript是开启状态。打开“工具”菜单(或按`Alt+X`),选择“Internet选项”,然后转到“安全”选项卡。点击...
如果说,JavaScript引擎的工作机制比较深奥是因为它属于底层行为,那么JavaScript代码执行顺序就比较形象了,因为我们可以直观感觉到这种执行顺序,当然JavaScript代码的执行顺序是比较复杂的,所以在深入JavaScript...
在标准模式下,IE8及以下版本不支持通过`setAttribute`直接为元素添加事件监听器,这与现代浏览器如Chrome和Firefox存在差异。为了确保兼容性,通常推荐使用`addEventListener`方法为元素添加事件监听器,但由于IE8...
"兼容多种IE的javascript日期控件"这个主题就是针对这个问题的一个解决方案。它是一个经过改造的calendar日期控件,旨在确保在不同版本的Internet Explorer(如IE6、IE8、IE9)中能够正常运行,尽管在Google浏览器中...
对于JavaScript,有几种不同的引入方式,每种方式的执行顺序略有不同。 首先,JavaScript可以直接写在`<script>`标签内,或者通过`<script>`标签的`src`属性引用外部JS文件。这两种方式都会按照它们在HTML文档中的...
在JavaScript中导入Excel文件,尤其是在兼容古老的Internet Explorer 11(IE11)浏览器时,需要考虑到这个浏览器并不支持现代的File API和其他先进的Web技术。本文将深入探讨如何实现这一功能,以及涉及到的关键知识...
总之,"IE JavaScript代码调试工具"是针对IE环境下JavaScript开发的专业调试解决方案,通过断点、单步执行和查看变量值等功能,为开发者提供了深入理解和解决问题的强大武器。尽管其适应性有限,但在特定场景下,它...
在Web开发中,事件绑定是客户端编程的一个基础功能。...在JavaScript中,有两种常见的事件绑定...这样,无论是在旧版IE浏览器还是现代浏览器中,事件处理函数都能够按照绑定顺序依次执行,从而避免了执行顺序混乱的问题。
### IE Javascript脚本失效解决办法 #### 一、问题背景 在使用Internet Explorer(以下简称IE)浏览器时,可能会遇到JavaScript脚本失效的情况。这不仅会影响网页的正常展示,还可能导致某些交互功能无法正常使用...
在探讨IE6、IE7、IE8对CSS和JavaScript支持的差异时,我们可以发现一系列显著的兼容性问题和解析规则的变化。以下是对这些差异的详细分析: 1. **JavaScript性能和垃圾收集**: - 在IE6中,JScript引擎在处理大量...
Javascript是一种脚本语言,它的执行顺序遵循至上而下的原则,除非有特别的说明。这意味着,当浏览器解析HTML文档时,如果在页面完全加载之前遇到Javascript代码,它将立即执行这些代码。这对于依赖页面上已经加载的...