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实现tabs选项卡切换效果(自写原生js)
Mar 19 Javascript
javascript模拟post提交隐藏地址栏的参数
Sep 03 Javascript
jQuery元素选择器用法实例
Dec 23 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
Sep 15 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
Sep 26 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
微信小程序实现滑动删除效果
May 19 Javascript
ionic环境配置及问题详解
Jun 27 Javascript
vue单页应用加百度统计代码(亲测有效)
Jan 31 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
Jun 13 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
Jul 24 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
Jul 31 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
php判断当前用户已在别处登录的方法
2015/01/06 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
采用call方式实现js继承
2014/05/20 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
实例讲解Python爬取网页数据
2018/07/08 Python
Selenium定位元素操作示例
2018/08/10 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
keras 读取多标签图像数据方式
2020/06/12 Python
用python对excel查重
2020/12/07 Python
python 下载文件的几种方法汇总
2021/01/06 Python
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
网络专业学生个人的自我评价
2013/12/16 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
怎样写家长意见
2015/06/04 职场文书
董事长新年致辞
2015/07/29 职场文书
小学班级管理心得体会
2016/01/07 职场文书
妇产科护理心得体会
2016/01/22 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js