Javascript-Mozilla和IE中的一个函数直接量的问题分析


Posted in Javascript onAugust 12, 2007

我在这里写这个也是写点在做js时遇到的问题,当个笔记.没有想到被hax "批"了一顿,不过也是说得有些道理的.毕竟这个内容也不痛不痒的

一般情况下,我们在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中call的两种用法实例
Dec 13 Javascript
javascript实现避免页面按钮重复提交
Jan 08 Javascript
Javascript核心读书有感之语句
Feb 11 Javascript
JS插件overlib用法实例详解
Dec 26 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
Mar 30 Javascript
纯js代码制作的网页时钟特效【附实例】
Mar 30 Javascript
ASP.NET jquery ajax传递参数的实例
Nov 02 Javascript
使用node.js实现微信小程序实时聊天功能
Aug 13 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
Oct 31 Javascript
vue中axios实现数据交互与跨域问题
May 12 Javascript
layer ui 导入文件之前传入数据的实例
Sep 23 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
Feb 14 Javascript
IE和Mozilla的兼容性汇总event
Aug 12 #Javascript
收藏Javascript中常用的55个经典技巧
Aug 12 #Javascript
JavaScript-世界上误解最深的语言分析
Aug 12 #Javascript
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
Aug 08 #Javascript
alixixi runcode.asp的代码不错的应用
Aug 08 #Javascript
网上应用的一个不错common.js脚本
Aug 08 #Javascript
javascript 实现父窗口引用弹出窗口的值的脚本
Aug 07 #Javascript
You might like
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
毕业生求职推荐信
2013/11/04 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
新疆民族团结演讲稿
2014/08/27 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
扬州个园导游词
2015/02/06 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
合同纠纷调解书
2015/05/20 职场文书
商务宴会祝酒词
2015/08/11 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL
Win2008系统搭建DHCP服务器
2022/06/25 Servers
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers