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 相关文章推荐
JQuery Easyui Tree的oncheck事件实现代码
May 28 Javascript
js的表单操作 简单计算器
Dec 29 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
Apr 17 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
Mar 18 Javascript
javascript浏览器窗口之间传递数据的方法
Jan 20 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
Aug 26 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
May 24 Javascript
javascript将url解析为json格式的两种方法
Aug 18 Javascript
jquery实现左右轮播图效果
Sep 28 jQuery
使用Node.js在深度学习中做图片预处理的方法
Sep 18 Javascript
js利用iframe实现选项卡效果
Aug 09 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 字符转义 注意事项
2009/05/27 PHP
php牛逼的面试题分享
2013/01/18 PHP
javascript中的缓动效果实现程序
2012/12/29 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
Vue实现计算器计算效果
2020/08/17 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
速记Python布尔值
2017/11/09 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
Pycharm小白级简单使用教程
2020/01/08 Python
python中常用的数据结构介绍
2021/01/12 Python
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
大学生期末自我鉴定
2014/02/01 职场文书
医院领导班子整改方案
2014/10/01 职场文书
自主招生专家推荐信
2015/03/26 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
Python基础详解之描述符
2021/04/28 Python
JS实现扫雷项目总结
2021/05/19 Javascript
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js