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 相关文章推荐
js中split函数的使用方法说明
Dec 26 Javascript
jquery插件corner实现圆角边框的方法
Mar 09 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
jQuery蓝色风格滑动导航栏代码分享
Aug 19 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
Dec 14 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
JS Ajax请求如何防止重复提交
Jun 13 Javascript
jQuery 中ajax异步调用的四种方式
Jun 28 Javascript
axios基本入门用法教程
Mar 25 Javascript
javascript中的面向对象
Mar 30 Javascript
Vue.js仿Metronic高级表格(一)静态设计
Apr 17 Javascript
Vuex中的Mutations的具体使用方法
Jun 01 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
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
php计算整个目录大小的方法
2015/06/19 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
学生信息管理系统python版
2018/10/17 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
python django生成迁移文件的实例
2019/08/31 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
python操作toml文件的示例代码
2020/11/27 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
门卫岗位安全职责
2013/12/13 职场文书
公司员工离职证明书
2014/10/04 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
毕业欢送会致辞
2015/07/29 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS