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 相关文章推荐
[原创]来自ImageSee官方 JavaScript图片浏览器
Jan 16 Javascript
Javascript load Page,load css,load js实现代码
Mar 31 Javascript
基于jquery可配置循环左右滚动例子
Sep 09 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
Aug 21 Javascript
javascript 小数取整简单实现方式
May 30 Javascript
js实现的tab标签切换效果代码分享
Aug 25 Javascript
Extjs4.0 ComboBox如何实现三级联动
May 11 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
Oct 09 Javascript
javascript动画之磁性吸附效果篇
Dec 09 Javascript
基于Vue插入视频的2种方法小结
Apr 02 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
Dec 17 Javascript
vue-列表下详情的展开与折叠案例
Jul 28 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.MVC的模板标签系统(三)
2006/09/05 PHP
substr()函数中文版
2006/10/09 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
prototype 学习笔记整理
2009/07/17 Javascript
Jquery cookie操作代码
2010/03/14 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
2020/11/02 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
python pandas模块基础学习详解
2019/07/03 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
如何创建一个Flask项目并进行简单配置
2020/11/18 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
大专生工程监理求职信
2013/10/04 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
安全先进个人材料
2014/12/29 职场文书
张丽莉观后感
2015/06/16 职场文书