JavaScript在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正则表达式分组匹配
语法 元字符:(pattern) 作用:用于反复匹配的分组 属性$1~$9 如果它(们)存在,用于得到对应分组中匹配到的子串 \1或$1 用于匹配第一个分组中的内容 \2或$2 用于匹配第一个分组中的内容 ... \9或$9 用于匹配第一个分组中的内容 用法示例 var reg = /(A+)((B|C|D)+)(E+)/gi;//该正则表达式有4个分组 //对应关系 //RegExp.$1 <-> (A+) //RegExp.$2 <-> ((B|C|D)+) //RegExp.
-
Javascript优化技巧之短路表达式详细介绍
什么是短路表达式? 短路表达式:作为"&&"和"||"操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值.这是这两个操作符的一个重要属性. 一个最简单的例子: 复制代码 代码如下: foo = foo||bar; 这行代码是什么意思?答案: 复制代码 代码如下: //如果foo存在,值不变,否则把bar的值赋给foo if(!foo) foo = bar; 在javascrip
-
javascript正则表达式基础知识入门
正则表达式的好处到底在哪里呢,下面我们先进行个了解: 我们用js中处理字符串的方法,写出取出字符串中数字的函数: var str='dgh6a567sdo23ujaloo932'; function getNumber(obj){ var arr=[]; for (var i = 0; i < obj.length; i++) { if (obj.charAt(i)>='0'&&obj.charAt(i)<='9'){ arr.push(obj.charAt(i)); }
-
javascript属性访问表达式用法分析
本文实例讲述了javascript属性访问表达式用法.分享给大家供大家参考.具体分析如下: 属性访问表达式运算得到一个对象属性或一个数组元素的值.js为属性访问定义了2中语法: expression.identifier expression["expression"] 不管使用何种形式属性访问表达式,在.和[之前的表达式钟会首先计算,如果计算结果是null或undefined,则表达式会抛出一个类型错误异常,因为这两个值都不能包含任意属性. 显然.identifier的写法更加简单,
-
JavaScript类属性的访问方式详解
JavaScript类属性的访问方式 复制代码 代码如下: var fish = { head : 1, tail : 1, feature : { speak : false, swim : true } } 其一,点操作符: 复制代码 代码如下: console.log(fish.head);//1 console.log(fish.tail);//1 console.log(fish.feature);//Object { head:1, tail:1, feature: Object}
-
javascript面向对象之访问对象属性的两种方式分析
本文实例分析了javascript面向对象之访问对象属性的两种方式.分享给大家供大家参考.具体如下: javascript面向对象的访问对象属性的两种方式.如下代码所示: 复制代码 代码如下: <script language="javascript" type="text/javascript"> function Person(){}; var p1 = new Person(); p1.name="王美人"; document.
-
Javascript访问器属性实例分析
本文实例分析了Javascript 访问器属性的用法,分享给大家供大家参考.具体分析如下: 这个和构造函数的意思有点像,但功能又不同,他可以让两个属性建立关联,通过修改一个属性来改变另一个属性. 复制代码 代码如下: var book = { _year:2004, edition: 1 }; Object.defineProperty(book, "year", { get: function() { return this._year;
-
JavaScript中的立即执行函数表达式介绍
我们习惯看到这样的匿名函数 复制代码 代码如下: (function(){ console.log("test"); })(); 之前一直叫的是自执行的匿名函数(self-executing anonymous function) 发现原来还有一种叫法是: 立即调用函数表达式 (IIFE,Immediately-Invoked Function Expression) 立即调用函数表达式 相比于自执行匿名函数,立即调用函数表达式的意思来得更明确一些. 自执行函数有下面的这一些例
-
JavaScript在IE中“意外地调用了方法或属性访问”
同样一段代码,两次调用,一次通过,一次异常: function clearSelect(obj){ if(obj && obj.options) obj.options.length=0; } 以下是前人的一些经验: 这是两个经典异常,不知道原理的话很难定位.从下面的代码中可用看到发生的条件 <iframe src="javascript:'<script>top.ff1={abc:function(){}}<\/script>'" wid
-
JavaScript使用function定义对象并调用的方法
本文实例讲述了JavaScript使用function定义对象并调用的方法.分享给大家供大家参考.具体分析如下: JS中你可以通过函数的方式定义对象,下面的JS代码定义了一个movie的函数对象,然后通过new的方法声明对象,调用起来也非常简单. <script type="text/javascript"> function movie(title, director) { this.title = title; this.director = director; } v
-
使用JavaScript获取URL中的参数(两种方法)
本文给大家分享两种方法使用js获取url中的参数,其中方法二是使用的正则表达式方法,大家可以根据需要选择比较好的方法,废话不多说了,直接看详细介绍吧. 方法一: //取url参数 var type = request("type") function request() { var query = location.search; var paras = arguments[0]; if (arguments.length == 2) { query = arguments[1]; }
-
JavaScript过滤字符串中的中文与空格方法汇总
js 如何过滤字符串里中文或空格呢?方法有很多种,我们可以使用替换与正则表达式来实现,本文向大家介绍两个简单的例子,感兴趣的朋友可以参考一下. 1.javascript过滤空格: function moveSpace() { var str = " abc defg"; alert(str.replace(/[ ]/g, "")); } moveSpace(); 2.javascript过滤中文: var title ="字符串zifuchuan"
-
对vue中methods互相调用的方法详解
如下所示: 最近在学习vue,并用vue+vue-router+axios+elementUI做了一个pos收银系统的前端页面,但是中间遇到methods里的方法调用问题.本身源码是没有调用的,但是我想直接调用多方便,结果出错了--然后百度了一波,终于解决了~ 分享并做个笔记. delAllOrderList:function(goods) { this.tableData = []; this.totalCount = 0; this.money = 0; }, checkout:functi
-
详解IDEA中类加载器调用getResourceAsStream()方法需注意的问题
当我们使用类加载器调用getResourceAsStream()时,经常会出现空指针异常,明明路径名称都没有问题,为什么就是报空指针异常呢? 查了一下getResourceAsStream()的用法: 1. Class.getResourceAsStream(String path) : path 不以'/'开头时默认是从此类所在的包下取资源,以'/'开头则是从ClassPath根下获取.其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源. 2. Class.getCl
-
在SQL Server中使用CLR调用.NET方法实现思路
介绍 我们一起来做个示例,在.NET中新建一个类,并在这个类里新建一个方法,然后在SQL Server中调用这个方法.按照微软所述,通过宿主 Microsoft .NET Framework 2.0 公共语言运行库 (CLR),SQL Server 2005显著地增强了数据库编程模型. 这使得开发人员可以用任何CLR语言(如C#.VB.NET或C++等)来写存储过程.触发器和用户自定义函数. 我们如何实现这些功能呢? 为了使用CLR,我们需要做如下几步: 1.在.NET中新建一个类,并在这个类里
-
JavaScript中继承的一些示例方法与属性参考
prototype 属性的作用: 利用prototype 属性提供对象的类的一组基本功能.对象的新实例"继承"赋予该对象原型的操作. prototype 属性的功能: 所有JavaScript 内部对象都有只读的prototype 属性.可以为内部对象的原型添加功能,但该对象不能被赋予不同的原型. 然而,用户定义的对象可以被赋给新的原型. constructor 属性的作用: constructor 表示创建对象的函数. constructor 属性的功能: constructor 属
-
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
每个function有个prototype属性,称为原型.每个对象也有个原型,Firefox/Safari/Chrome/Opera 中可以通过__proto__来访问,IE6/7/8中没有提供相关接口. 复制代码 代码如下: function Person(){ this.method1 = function(){} } Person.prototype.method2 = function(){} function Man(){} Man.prototype = new Person
-
javascript中call apply 与 bind方法详解
在JavaScript中,call.apply和bind是Function对象自带的三个方法,本文将通过几个场景的应用,来详细理解三个方法. call() call() 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法. 当调用一个函数时,可以赋值一个不同的 this 对象.this 引用当前对象,即 call 方法的第一个参数. 通过 call 方法,你可以在一个对象上借用另一个对象上的方法,比如Object.prototype.toString.call([]),
随机推荐
- hta(vbs)列目录树代码
- Android实现二维码扫描并登陆网页
- iOS中正则表达式的运用示例代码
- asp.net 不用GridView自带删除功能,删除一行数据
- 搭建基于Docker的PHP开发环境的详细教程
- PHP的面试题集,附我的答案和分析(一)
- php木马webshell扫描器代码
- Thinkphp模板标签if和eq的区别和比较实例分析
- 详解C语言的随机数生成及其相关题目
- PHP性能优化 产生高度优化代码
- 浅析js 文字滚动效果
- ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的方法
- mysql5.5 master-slave(Replication)配置方法
- jquery实现拖拽调整Div大小
- jquery中的on方法使用介绍
- js的image onload事件使用遇到的问题
- 基于Node.js的WebSocket通信实现
- 在Win2k下建立虚拟Web主机
- c语言在控制台判定鼠标左键的小例子
- 通过特性(attribute)为枚举添加更多信息示例