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中直接写php代码的方法
Jul 31 Javascript
jquery css 设置table的奇偶行背景色示例
Jun 03 Javascript
详解js中class的多种函数封装方法
Jan 03 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
jQuery实现底部浮动窗口效果
Sep 07 Javascript
Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法
Feb 27 Javascript
一文让你彻底搞清楚javascript中的require、import与export
Sep 24 Javascript
js时间戳与日期格式之间转换详解
Dec 11 Javascript
通过实例学习React中事件节流防抖
Jun 17 Javascript
vue - props 声明数组和对象操作
Jul 30 Javascript
解决vue刷新页面以后丢失store的数据问题
Aug 11 Javascript
js判断两个数组相等的5种方法
May 06 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生成随机数或者字符串的代码
2008/09/05 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
Python验证文件是否可读写代码分享
2017/12/11 Python
详解python运行三种方式
2019/05/13 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
外语系毕业生自荐信范文
2013/12/16 职场文书
音乐教学案例
2014/01/30 职场文书
搞笑爱情保证书
2014/04/29 职场文书
欢迎横幅标语
2014/06/17 职场文书
领导干部对照检查材料
2014/08/24 职场文书
2015年征兵工作总结
2015/07/23 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python