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 相关文章推荐
Div Select挡住的解决办法
Aug 07 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
Oct 29 Javascript
javaScript实现浮点数转十六进制字符
Oct 29 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
Apr 08 Javascript
javascript中数组方法汇总
Jul 07 Javascript
javascript设置页面背景色及背景图片的方法
Dec 29 Javascript
jQuery插件Validate实现自定义表单验证
Jan 18 Javascript
ios中视频的最后一桢问题解决
May 14 Javascript
封装一下vue中的axios示例代码详解
Feb 16 Javascript
jQuery实现视频展示效果
May 30 jQuery
微信小程序连接服务器展示MQTT数据信息的实现
Jul 14 Javascript
微信小程序实现签到弹窗动画
Sep 21 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内置过滤器FILTER使用实例
2014/06/25 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
python实现手机通讯录搜索功能
2018/02/22 Python
set在python里的含义和用法
2019/06/24 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
高中毕业自我鉴定
2013/12/16 职场文书
大学生个人事迹材料
2014/01/21 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
投资建议书模板
2014/05/12 职场文书
西游降魔篇观后感
2015/06/15 职场文书
母亲节感言
2015/08/03 职场文书
公司员工培训管理制度
2015/08/04 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL