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 相关文章推荐
关于scrollLeft,scrollTop的浏览器兼容性测试
Mar 19 Javascript
jQuery中读取json文件示例代码
May 10 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
Mar 18 Javascript
Node.js中的模块机制学习笔记
Nov 04 Javascript
javascript实现鼠标拖动改变层大小的方法
Apr 30 Javascript
javaScript中定义类或对象的五种方式总结
Dec 04 Javascript
JavaScript常见的五种数组去重的方式
Dec 15 Javascript
easyui combogrid实现本地模糊搜索过滤多列
May 13 Javascript
深入理解ES6之数据解构的用法
Jan 13 Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 Javascript
详解JavaScript自定义函数
Jul 29 Javascript
vue点击按钮实现简单页面的切换
Sep 08 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
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
python映射列表实例分析
2015/01/26 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
详解python中的线程与线程池
2019/05/10 Python
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
车间操作工岗位职责
2013/12/19 职场文书
家长给老师的道歉信
2014/01/13 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
业务员岗位职责
2015/02/03 职场文书
世界文化遗产导游词
2015/02/13 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
Win10系统下配置Java环境变量
2021/06/13 Java/Android
vue使用echarts实现折线图
2022/03/21 Vue.js