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 相关文章推荐
JS 常用校验函数
Mar 26 Javascript
Extjs根据条件设置表格某行背景色示例
Jul 23 Javascript
JS烟花背景效果实现方法
Mar 03 Javascript
javascript制作幻灯片(360度全景图片)
Jul 28 Javascript
jquery利用拖拽方式在图片上添加热链接
Nov 24 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
Dec 04 Javascript
关于JS中的方法是否加括号的问题
Jul 27 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
Jul 17 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
JavaScript中创建原子的方法总结
Aug 26 Javascript
在vue中使用console.log无效的解决
Aug 09 Javascript
详解微信小程序动画Animation执行过程
Sep 23 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
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
GreyBox技术总结(转)
2010/11/23 Javascript
jquery更换文章内容与改变字体大小代码
2013/09/30 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
手把手教你python实现SVM算法
2017/12/27 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
旅游专业职业生涯规划范文
2014/01/13 职场文书
美术国培研修感言
2014/02/12 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
餐饮投资计划书
2014/04/25 职场文书
学校教师读书活动总结
2014/07/08 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
前台文员岗位职责
2015/02/04 职场文书
关于开学的感想
2015/08/10 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
校长新学期寄语2016
2015/12/04 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
Django使用redis配置缓存的方法
2021/06/01 Redis
python微信智能AI机器人实现多种支付方式
2022/04/12 Python