Javascript-Mozilla和IE中的一个函数直接量的问题


Posted in Javascript onJanuary 09, 2007

一般情况下,我们在JS中用函数直接量来命名一个简单的函数。

<script type="text/javascript">
var func=function(s){window.alert(s)};
func("never-online")
</script>

这在IE或者Mozilla中也是合法的(ECMA标准中有函数直接量的定义)。

但是IE中还有另外一种更简单的命名方式可以简化我们的代码:

<div id="demo">http://blog.never-online.net</div>
<script type="text/javascript">
var $=document.getElementById;
alert($("demo").innerHTML);
</script>

而这在Mozilla中没有报语法错误,而是抛出了一个异常, 操作符非法:
下面代码是捕获Mozilla抛出的异常并打印出来

<div id="demo">http://blog.never-online.net</div>
<script type="text/javascript">
var $=document.getElementById;
try {
alert($("demo").innerHTML);
} catch(ex) { document.write(ex)}
</script>

异常内容为:
[Exception... "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame :: file:///C:/Documents%20and%20Settings/Administrator/Local%20Settings/Temp/non4A.htm :: :: line 22" data: no]

现在还不知道能不能在Mozilla的config中设置,总之写代码的时候要注意.

我在google上搜索 getElementById 0x8057000c 关键字,还是有很多类似的情况,比如

http://groups.google.co.uk/group/comp.lang.javascript/browse_thread/thread/65a1a23f5dd7c9ad/d264d04d9d768b28?tvc=2#d264d04d9d768b28

没有更好的解决办法,但是可以变通,比这样写

<div id="foo"></div>
<script>
document.$ = document.getElementById; 
alert(document.$("foo").innerHTML);
</script>

因为js可以动态的给对象增加属性和方法,上面的例子在ie和moz中测试都可以通过. 

Javascript 相关文章推荐
JQuery 图片延迟加载并等比缩放插件
Nov 09 Javascript
更快的异步执行(setTimeout多浏览器)
Aug 12 Javascript
javascript创建cookie、读取cookie
Mar 31 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
May 12 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
May 27 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
Jun 30 Javascript
vue.js初学入门教程(1)
Nov 03 Javascript
JS函数多个参数默认值指定方法分析
Nov 28 Javascript
Vue 之孙组件向爷组件通信的实现
Apr 23 Javascript
js实现浏览器打印功能的示例代码
Jul 15 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
Oct 27 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
Nov 09 Javascript
Javascript调试工具(下载)
Jan 09 #Javascript
如何在Mozilla Gecko 用Javascript加载XSL
Jan 09 #Javascript
如何让动态插入的javascript脚本代码跑起来。
Jan 09 #Javascript
JS效率个人经验谈(8-15更新),加入range技巧
Jan 09 #Javascript
你所要知道JS(DHTML)中的一些技巧
Jan 09 #Javascript
sina的lightbox效果。
Jan 09 #Javascript
JS中简单的实现像C#中using功能(有源码下载)
Jan 09 #Javascript
You might like
PHP中feof()函数实例测试
2014/08/23 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
python中的随机函数random的用法示例
2018/01/27 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
PyQt5实现简易计算器
2020/05/30 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
浅析使用Python搭建http服务器
2019/10/27 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
哪些情况下不应该使用索引
2015/07/20 面试题
文员个人求职自荐信
2013/09/21 职场文书
机电一体化专业应届生求职信
2013/11/27 职场文书
自动化专业个人求职信范文
2013/12/30 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
2014领导干部四风问题查摆思想汇报
2014/09/13 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
婚礼家长致辞
2015/07/27 职场文书
通知怎么写?
2019/04/17 职场文书
2019年作为一名实习生的述职报告
2019/09/29 职场文书