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 学习笔记一
Apr 07 Javascript
基于jquery的一个浮动框(扩展性比较好 )
Aug 27 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
Jan 10 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
理解javascript中Map代替循环
Feb 26 Javascript
详解Angular开发中的登陆与身份验证
Jul 27 Javascript
Angular中$cacheFactory的作用和用法实例详解
Aug 19 Javascript
你不知道的 javascript【推荐】
Jan 08 Javascript
angular.js+node.js实现下载图片处理详解
Mar 31 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
Nov 09 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
Oct 29 Javascript
javascript/jquery实现点击触发事件的方法分析
Nov 11 jQuery
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 UTF-8、Unicode和BOM问题
2010/05/18 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
2015/12/22 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
javascript的push使用指南
2014/12/05 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
two.js之实现动画效果示例
2017/11/06 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python实现的ini文件操作类分享
2014/11/20 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
对Python Class之间函数的调用关系详解
2019/01/23 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
秋季婚礼证婚词
2014/01/11 职场文书
学生打架检讨书
2014/02/14 职场文书
支部书记四风对照材料
2014/08/28 职场文书
假释思想汇报范文
2014/10/11 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
大学生军训感言
2015/08/01 职场文书
Django REST framework 限流功能的使用
2021/06/24 Python
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL