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 相关文章推荐
解决jquery .ajax 在IE下卡死问题的解决方法
Oct 26 Javascript
extjs4 treepanel动态改变行高度示例
Dec 17 Javascript
javascript校验价格合法性实例(必须输入2位小数)
May 05 Javascript
javascript函数式编程实例分析
Apr 25 Javascript
javascript实现带下拉子菜单的导航菜单效果
May 14 Javascript
使用JQuery实现的分页插件分享
Nov 05 Javascript
js表单验证实例讲解
Mar 31 Javascript
基于rollup的组件库打包体积优化小结
Jun 18 Javascript
vue-cli脚手架的安装教程图解
Sep 02 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
详解关于微信setData回调函数中的坑
Feb 18 Javascript
这应该是最详细的响应式系统讲解了
Jul 22 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
PHP+ajax 无刷新删除数据
2010/02/20 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
使用Python解析JSON数据的基本方法
2015/10/15 Python
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
python操作mysql代码总结
2018/06/01 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
董事长岗位职责
2013/11/30 职场文书
社区学习十八大感想
2014/01/22 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
银行求职自荐信范文
2015/03/04 职场文书
大学生暑期实践报告
2015/07/13 职场文书
领导视察通讯稿
2015/07/18 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS