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 禁用浏览器的后退功能的简单方法
Dec 10 Javascript
javascript CSS画图之基础篇
Jul 29 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
Sep 28 Javascript
Java 正则表达式学习总结和一些小例子
Sep 13 Javascript
JS 对输入框进行限制(常用的都有)
Jul 30 Javascript
javascript动态判断html元素并执行不同的操作
Jun 16 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
Jan 09 Javascript
javascript笛卡尔积算法实现方法
Apr 08 Javascript
js绘制圆形和矩形的方法
Aug 05 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
Aug 10 Javascript
js绘制购物车抛物线动画
Nov 18 Javascript
JS如何寻找数组中心索引过程解析
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
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
js闭包用法实例详解
2016/12/13 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
[09:40]DAC2018 4.5 SOLO赛 MidOne vs Miracle
2018/04/06 DOTA
python框架django基础指南
2016/09/08 Python
详解python深浅拷贝区别
2019/06/24 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
大学优秀班主任事迹材料
2014/05/02 职场文书
5s推行计划书
2014/05/06 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
2015年大学生实习评语
2015/03/25 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫