問題:
最近IE升級到IE10,發現原來eWebEditor文本編輯器不能用了,

解決方案:
只要改一下IE10的兼容性模式。
方法:按F12 如圖勾選兼容性視圖。

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