最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript-Mozilla和IE中的一個函數(shù)直接量的問題分析

 更新時間:2007年08月12日 15:55:15   作者:  
我在這里寫這個也是寫點(diǎn)在做js時遇到的問題,當(dāng)個筆記.沒有想到被hax "批"了一頓,不過也是說得有些道理的.畢竟這個內(nèi)容也不痛不癢的

一般情況下,我們在JS中用函數(shù)直接量來命名一個簡單的函數(shù)。


<script type="text/javascript">
var func=function(s){window.alert(s)};
func("never-online")
</script>

這在IE或者M(jìn)ozilla中也是合法的(ECMA標(biāo)準(zhǔn)中有函數(shù)直接量的定義)。

但是IE中還有另外一種更簡單的命名方式可以簡化我們的代碼:

<div id="demo">http://blog.never-online.net</div>
<script type="text/javascript">
var $=document.getElementById;
alert($("demo").innerHTML);
</script>

而這在Mozilla中沒有報(bào)語法錯誤,而是拋出了一個異常, 操作符非法:
下面代碼是捕獲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>

異常內(nèi)容為:
[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]

現(xiàn)在還不知道能不能在Mozilla的config中設(shè)置,總之寫代碼的時候要注意.

我在google上搜索 getElementById 0x8057000c 關(guān)鍵字,還是有很多類似的情況,比如

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>

因?yàn)閖s可以動態(tài)的給對象增加屬性和方法,上面的例子在ie和moz中測試都可以通過.

相關(guān)文章

最新評論

濮阳县| 彰化县| 甘德县| 福鼎市| 原平市| 乐昌市| 普兰县| 高清| 大安市| 邵东县| 嵩明县| 崇礼县| 衢州市| 南开区| 阳城县| 陵川县| 曲麻莱县| 马关县| 云林县| 岳阳市| 响水县| 余姚市| 波密县| 霞浦县| 海晏县| 宾川县| 云梦县| 濮阳县| 柞水县| 防城港市| 纳雍县| 云安县| 章丘市| 平昌县| 老河口市| 广水市| 云霄县| 邯郸市| 遂宁市| 晋江市| 张家界市|