Javascript-Mozilla和IE中的一个函数直接量的问题

漂亮妮妮1

漂亮妮妮1

2016-02-19 10:55

今天给大家分享的是由图老师小编精心为您推荐的Javascript-Mozilla和IE中的一个函数直接量的问题,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!
一般情况下,我们在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中测试都可以通过. 
展开更多 50%)
分享

猜你喜欢

Javascript-Mozilla和IE中的一个函数直接量的问题

Web开发
Javascript-Mozilla和IE中的一个函数直接量的问题

Javascript-Mozilla和IE中的一个函数直接量的问题分析

Web开发
Javascript-Mozilla和IE中的一个函数直接量的问题分析

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

javascript之函数直接量(function(){})()

Web开发
javascript之函数直接量(function(){})()

贴一个在Mozilla中常用的Javascript代码

Web开发
贴一个在Mozilla中常用的Javascript代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个高ai的分页函数和一个url函数

PHP
一个高ai的分页函数和一个url函数

split 函数的一个问题 - PHPchina

PHP
split 函数的一个问题 - PHPchina

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用js取得鼠标所在位置的对象

用js取得鼠标所在位置的对象

锄禾日当午 地雷埋下土 李白在跳舞 炸成二百五 - QQ搞笑分组

锄禾日当午 地雷埋下土 李白在跳舞 炸成二百五 - QQ搞笑分组
下拉加载更多内容 ↓