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

IE 當(dāng)eval遇上function的處理

 更新時(shí)間:2011年08月09日 20:47:03   作者:  
在IE下,當(dāng)eval遇上function,IE下會(huì)出現(xiàn)怪異情況,我們用例子一步步說(shuō)明
情況1:eval里沒有function,直接執(zhí)行:
eval("alert('ss');");//所有瀏覽器正確均輸出
情況2:eval里有function,function立即執(zhí)行:
eval("(function(){alert('ss');})();");//所有瀏覽器正確輸出
情況3:eval里有function,使用變量保存function引用并調(diào)用該function:
var f=eval("(function(){alert('ss');})");
f();//IE下報(bào)錯(cuò):缺少對(duì)象 其他瀏覽器正常
當(dāng)在eval定義一個(gè)function并返回給變量時(shí),IE報(bào)錯(cuò):缺少對(duì)象??梢奍E下eval里定義的function并不能成功返回到eval外部。

解決方法:使function對(duì)象作為一個(gè)執(zhí)行結(jié)果返回:

方法1:

var f=eval("(function(){ return function(){alert('ss');}})()");
f();//所有瀏覽器正確輸出
eval里調(diào)用一個(gè)立即執(zhí)行的函數(shù),該函數(shù)執(zhí)行之后返回一個(gè)function對(duì)象,此時(shí)該function對(duì)象的引用成功返回到外部變量。

方法2:

var f=eval("(false||function(){alert('ss');})");
f();//所有瀏覽器成功輸出
該方法也是jquery里使用的方法,function作為或表達(dá)式的執(zhí)行結(jié)果返回,同樣能成功解決問(wèn)題。當(dāng)然,表達(dá)式并不局限于上面的false||function(){},各種表達(dá)式只要能成功返回function,均可解決問(wèn)題:

/* 與表達(dá)式:*/
var f=eval("(true&&function(){alert('ss');})");
f();//所有瀏覽器正常輸出

/* 三元表達(dá)式:*/
var f=eval("(true?function(){alert('ss');}:'');");
f();//所有瀏覽器正常輸出

相關(guān)文章

最新評(píng)論

乌鲁木齐县| 铜陵市| 廉江市| 额尔古纳市| 勃利县| 呈贡县| 太谷县| 江北区| SHOW| 湘潭县| 苗栗县| 东山县| 曲周县| 新沂市| 砀山县| 宁阳县| 于都县| 泗水县| 永和县| 铁岭县| 称多县| 广南县| 二手房| 株洲市| 新巴尔虎右旗| 顺昌县| 武功县| 资中县| 嘉荫县| 平凉市| 渑池县| 双流县| 郎溪县| 阳春市| 哈尔滨市| 绥德县| 新源县| 潍坊市| 华坪县| 林西县| 涿州市|