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 相关文章推荐
javascript 拖放效果实现代码
Jan 22 Javascript
解析Jquery取得iframe中元素的几种方法
Jul 04 Javascript
Mac地址验证的javascript代码
Nov 09 Javascript
jQuery中outerHeight()方法用法实例
Jan 19 Javascript
全面理解JavaScript中的继承(必看)
Jun 16 Javascript
jQuery插件简单学习实例教程
Jul 01 Javascript
javaScript事件机制兼容【详细整理】
Jul 23 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 Javascript
Vue.use源码分析
Apr 22 Javascript
深入理解Commonjs规范及Node模块实现
May 17 Javascript
Vue自定义指令实现checkbox全选功能的方法
Feb 28 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
Mar 01 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
德生PL660的电路分析和打磨
2021/03/02 无线电
实用函数4
2007/11/08 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
2011/11/10 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
javascript操作excel生成报表全攻略
2014/05/04 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
2016/08/01 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
解读ES6中class关键字
2017/11/20 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
一份python入门应该看的学习资料
2018/04/11 Python
python plotly绘制直方图实例详解
2019/07/22 Python
Django实现文件上传和下载功能
2019/10/06 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
super()与this()的区别
2016/01/17 面试题
简历中的自我评价怎么写
2014/01/29 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
求职简历自我评价范例
2014/03/12 职场文书
入股协议书
2014/04/14 职场文书
技术合作协议书范本
2014/04/18 职场文书
党员领导干部承诺书
2014/05/28 职场文书
抢劫罪辩护词
2015/05/21 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
浅谈Redis的事件驱动模型
2022/05/30 Redis