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将数据库中的TEXT类型数据动态赋值到TEXTAREA中
Apr 20 Javascript
Javascript 获取链接(url)参数的方法
Feb 15 Javascript
jQuery实现商品活动倒计时
Oct 16 Javascript
Vue.js 和 MVVM 的注意事项
Nov 07 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
Mar 13 Javascript
Bootstrap常用组件学习(整理)
Mar 24 Javascript
Mongoose实现虚拟字段查询的方法详解
Aug 15 Javascript
jQuery中过滤器的基本用法示例
Oct 11 jQuery
浅谈jquery fullpage 插件增加头部和版权的方法
Mar 20 jQuery
Vue.js 中的 v-show 指令及用法详解
Nov 19 Javascript
JS实现json数组排序操作实例分析
Oct 28 Javascript
JS实现鼠标移动拖尾
Dec 27 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图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
jQuery示例收集
2010/11/05 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
详解Axios统一错误处理与后置
2018/09/26 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
Python的Django框架中settings文件的部署建议
2015/05/30 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
python aiohttp的使用详解
2019/06/20 Python
Python collections模块使用方法详解
2019/08/28 Python
Python reduce函数作用及实例解析
2020/05/08 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
html5使用canvas画一条线
2014/12/15 HTML / CSS
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
设计总监岗位职责
2013/12/07 职场文书
高中英语教学反思
2014/02/04 职场文书
解除财产保全担保书
2014/05/20 职场文书
个人安全生产责任书
2014/07/28 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
python 调用js的四种方式
2021/04/11 Python
apache基于端口创建虚拟主机的示例
2021/04/22 Servers