JavaScript在IE中“意外地调用了方法或属性访问
FF是正常的,IE报“意外地调用了方法或属性访问”。
同样一段代码,两次调用,一次通过,一次异常:
function clearSelect(obj){
if(obj && obj.options)
obj.options.length=0;
}
以下是前人的一些经验:
这是两个经典异常,不知道原理的话很难定位。从下面的代码中可用看到发生的条件
<iframe src="javascript:'<script>top.ff1={abc:function(){}}<\/script>'" width=0 height=0 name="f1"></iframe>
<button onclick="f1.location='about:blank';setTimeout('alert(ff1.abc())',0)">不能执行已经释放的代码</button>
<iframe src="Javascript:'<script>top.ff2={abc:function(){}}<\/script>'" width=0 height=0 name="f2"></iframe>
<button onclick="f2.location='about:blank';setTimeout('alert(ff2.toString())',0)">意外地调用了方法或属性访问</button>
p标签的innerHtml不能插入center标记:
<p onclick="innerHTML='<CENTER></CENTER>'"><button>未知的运行时错误</button></p>
下面这个是经典的“无法打开Internet站点”异常:
<div id="tt"><div><script>document.getElementById("tt").innerHTML=""</script></div></div>
从这些例子可以看到IE的健壮性还是有挺大的提升余地的。
分享到:
相关推荐
### JavaScript在IE中“意外地调用了方法或属性访问” #### 背景与问题概述 在跨浏览器开发中,开发者经常会遇到不同浏览器对同一段JavaScript代码的不同处理方式。其中,“意外地调用了方法或属性访问”是...
- 兼容处理:为避免意外的全局变量,始终在函数或块级作用域中使用`var`声明变量。 5. **const问题的重复说明** - 与上一点相同,IE不支持`const`,应使用`var`代替。 **二、样式访问和设置** 1. **CSS的"float...
JavaScript的块级作用域在`var`声明中并不适用,这可能导致意外的全局变量。函数声明会自动提升到其所在作用域的顶部,而函数表达式则需要在执行到它们时才会被创建。 在循环中,如`for`循环,`var`声明的变量会在...
这个属性在IE中用于访问DOM元素,但在FF中应使用`document.getElementById`或`document.querySelector`。 - `window.attachEvent` vs `element.addEventListener`:IE使用`attachEvent`添加事件处理程序,而FF使用`...
下面将详细介绍Chakra引擎在IE11中的JavaScript执行管道。 #### ECMAScript代码类型 ECMAScript代码主要分为三种类型: 1. **全局代码(Global code)**:通常指那些不包含在任何函数内部、直接写在脚本中的代码...
在JavaScript中,通过点符号(`.`)或方括号符号(`[]`)来访问对象属性时,需要注意一些细节。例如: ```javascript var theObj = { city: "Boston", state: "MA", }; ``` 在上述示例中,`theObj` 是一个简单的...
在IT行业中,编程是一项至关重要的技能,而VB(Visual Basic)作为经典的编程语言,至今仍被许多开发者用于创建各种应用程序。本主题聚焦于一个特定的VB应用:删除IE(Internet Explorer)浏览器的缓存。IE缓存是...
- **慎用`with`语句**:虽然`with`语句简化了属性访问,但也可能引入作用域问题和性能下降,应谨慎使用。 ##### 4. 异常处理与自定义异常 - **异常捕获**:使用`try...catch`结构进行异常处理,增强代码健壮性。 -...
- **IE7 hack**:在属性前加星号 `(*)` 或 `_` 后加 `*`,仅IE7识别。 - **IE8 hack**:在属性值后加 `\9`,仅IE8识别。 - **Firefox hack**:使用 `!important`,在非IE浏览器中优先级更高。 ```css #test { ...
- **避免使用`const`关键词**:由于兼容性问题,在IE等浏览器中不被支持。 #### 3. **分号** **重要性**: - **清晰性**:显式添加分号可以明确语句边界,增强代码的可读性。 - **避免潜在错误**:在某些情况...
然而,在旧版IE浏览器中,使用`attachEvent`时`this`指向`window`对象,这是因为`attachEvent`是作为全局函数而非方法调用的。为了在所有浏览器中保持一致性,可以使用`event.srcElement`来代替`this`获取触发事件的...
【标题】"Skype中文官网6屏切换JS代码.rar"所包含的知识点主要涉及JavaScript(JS)编程语言在网页交互效果中的应用,特别是焦点图或幻灯片切换效果的实现。这种效果通常用于网站的首页,展示多个重要的信息点或者...
14. 类型转换:在JavaScript中,类型转换可能会引起意外的行为,规范中应当包含如何安全地进行类型转换的指南。 15. 命名约定:好的命名习惯对于代码的维护至关重要,包括变量、函数、类等的命名规范。 16. 存取器...
然而,有时为了防止用户意外离开当前输入区域或实现自定义的导航顺序,我们可能需要禁用这个默认行为。这可以通过监听键盘事件并阻止其默认行为来实现。 下面是一个简单的JavaScript函数,用于禁用Tab键的功能: `...
在IE浏览器中,UniGUI控件的字体可能会变小或模糊,这可能是因为浏览器的兼容性问题或CSS样式设置不正确。可以通过调整控件的CSS样式或采用跨浏览器的字体设置来解决。 3. **ShowMessage()在浏览器端** 浏览器...
在JavaScript的对象或数组定义中,如果最后一个元素后面有逗号,IE浏览器会抛出语法错误。尽管在其他一些语言如Python中这是允许的,但在JavaScript中应避免这种写法,以确保代码在所有浏览器中的兼容性。 ```...
- **4**: 响应已完成接收,此时可以安全地访问响应数据。 2. **`onreadystatechange`**: 当`readyState`发生变化时,此事件处理程序会被调用。开发者可以通过检查`readyState`的值来确定请求的状态,并根据不同的...