昨天ie8正式發(fā)布了,偶也去下載了一個(gè),,感覺(jué)很爽,, 還在美的時(shí)候,突然發(fā)現(xiàn)很多網(wǎng)頁(yè)都出問(wèn)題,,更可氣的是自己的網(wǎng)站編輯器也不管用了,,所有的按鈕都不管用,即使是別的瀏覽器也都不管用,,我這叫一個(gè)汗,。于是就去360論壇找人問(wèn),因?yàn)槲矣玫?60瀏覽器以為是360瀏覽器的問(wèn)題,。問(wèn)了半天也沒(méi)有人回答我于是我就去網(wǎng)上找,,由于今天才出的ie8所以網(wǎng)上根本也沒(méi)有這方面的解決辦法,于是到了第二天,,網(wǎng)上終于有了這樣的貼子,,所以我也找了找解決辦法。
在一個(gè)哥們的貼子中是這樣寫(xiě)的,,打開(kāi)include下面的editor.js文件,,有這樣的段代碼:
if (element.YUSERONCLICK) {
eval(element.YUSERONCLICK + "anonymous()");
}
或
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
或
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
說(shuō)是因?yàn)閕e8屏蔽了anonymous方法 所以要改成click方法,于是就改成這樣,,但是我又有了一個(gè)驚人的發(fā)現(xiàn),,那就是改成這樣之后在ie7下編輯器就不管用了,痛苦之余我又去網(wǎng)上查,,網(wǎng)上果然高水如云,,果然在csdn上找到了答案:
if(navigator.appVersion.match(/8./i)=='8.')
{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
}
else
{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
}
如果還是不行用下面這個(gè)
if(navigator.appVersion.match(/8./i)=='8.' || navigator.appVersion.match(/7./i)=='7.'){
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)"); //IE8 or IE7
} else {
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); //IE6
}
把代碼改成這樣之后在ie7和ie8下就都管用了。
=========================================================================
以上是一個(gè)人的說(shuō)話,以下是另一個(gè)人的
還有由于那個(gè)eWebEditor編輯器的問(wèn)題,。
今天檢查公司一老站后臺(tái),,發(fā)現(xiàn)eWebEditor編輯不能使用,,按照網(wǎng)上找的答案
找到editor.js文件,把這文件里的一行語(yǔ)句if(element.YUSERONCLICK)eval(element.YUSERONCLICK + “anonymous()”);
修改成
if(navigator.appVersion.match(/8./i)==’8.’)
{
if(element.YUSERONCLICK)eval(element.YUSERONCLICK + “onclick(event)”);
}
else
{
if(element.YUSERONCLICK)eval(element.YUSERONCLICK + “anonymous()”);
}
原因是IE8不支持anonymous(),,所以要換成onclick(event)事件,。
修改之后一同事使用IE7竟然不能正常使用該編輯器,修改之后可以,。
估計(jì)還是那行代碼的問(wèn)題,。恢復(fù)以前的,,IE7可以而IE8不可以,。看來(lái)還必須先判斷IE版本然后再寫(xiě)不同的代碼,。
于是就使用了下面的代碼:
if(navigator.appVersion.match(/8./i)=='8.'){
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
}else{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
}
修改之后在IE8和IE7均可以正常使用eWebEditor編輯器,。
但是在裝有IE8的機(jī)器上使用傲游瀏覽器竟然不能使用該編輯器,納悶了,,傲游是IE內(nèi)核,,應(yīng)該可以呀。
于是就使用alert(navigator.appVersion)彈出信息,,結(jié)果發(fā)現(xiàn)竟然是IE7,?
暈了!竟然不一樣,?難道傲游沒(méi)有用到真正的IE8內(nèi)核,?還是顯示的問(wèn)題?
難道再加一句判斷傲游的,?
沒(méi)辦法:
if(navigator.appVersion.match(/8./i)=='8.' || navigator.appVersion.match(/MAXTHON/i)=='MAXTHON'){
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
}else{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
}
前幾天看新聞?wù)f傲游開(kāi)發(fā)自己的內(nèi)核瀏覽器,,希望眾多瀏覽器在兼容代碼上好一些,不要浪費(fèi)編寫(xiě)代碼者的那么多找不兼容問(wèn)題,、調(diào)試不兼容問(wèn)題的時(shí)間,。
如果上面不行的話,請(qǐng)使用下面的方法:
try{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
}
catch(e){
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
==================================
我用下面這個(gè)人的方法解決了
----------------------------------------------
類似文摘:
原創(chuàng)]簡(jiǎn)單解決ewebeditor在IE7、IE8下失效問(wèn)題
EWEBEDITOR在IE7,、IE8下,,圖片上傳等按鈕總是不能正常彈出,搞的人很郁悶,,在網(wǎng)上搜索了一下解決方法,,找到代碼編輯器目錄JS下的EDITOR.JS文件,找到如下代碼
if (element.YUSERONCLICK) {
eval(element.YUSERONCLICK + "anonymous()");
}
再換成如下代碼:
以下是引用片段:
if(navigator.appVersion.match(/8./i)=='8.' || navigator.appVersion.match(/7./i)=='7.'){
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)"); //IE8 or IE7
} else {
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); //IE6
}
替換后問(wèn)題依舊,。TNND,,又找一位仁兄寫(xiě)的代碼換上:
以下是引用片段:
if(navigator.appVersion.match(/MSIE (7|8)\./i)!=null){
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
}else{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
}
還是不行,兩個(gè)代碼都未能解決問(wèn)題,郁悶,,看來(lái),,要不是瀏覽器中毒了,造成JS不能正常取得版本號(hào),,就是我RP太差。所以引起程序不知道如何處理判斷,。我看了一下兩位作者的代碼,,雖然寫(xiě)的很好,但是都有局限性,。既然知道了造成問(wèn)題的原因,,那就好辦了,自己寫(xiě)吧
此文章出處為西寧威勢(shì)電子信息服務(wù)有限公司:
try{
eval(element.YUSERONCLICK + "anonymous()");
}
catch(error)
{
eval(element.YUSERONCLICK + "onclick(event)");
}
寫(xiě)完以后再次測(cè)試,,OK,,正常了,哈哈??!我不管它是IE7還是IE8,我都往下執(zhí)行,,一個(gè)錯(cuò)了我就執(zhí)行另一個(gè),,管它呢,哈哈,,正常解決,容錯(cuò)語(yǔ)句就是挺管用的,。