(越辰家政軟件部收集整理demade.com.cn)
IE8從推出到現(xiàn)在已經(jīng)有了一段時間了,大家也逐漸開始升級到IE8,但如果您的網(wǎng)站后臺使用了eWebEditor在線編輯器的話,就會碰到以下的問題:
網(wǎng)站后臺使用的可視化編輯器不能正常使用,編輯器圖標(biāo)點擊無效(兼容模式依然無效),會提示editor.js或editor.asp等網(wǎng)頁中的“缺少對象”錯誤。
根據(jù)網(wǎng)友們的分析:是IE8中不再支持“anonymous()”方法,于是網(wǎng)上也出現(xiàn)解決的辦法,就是將anonymous()改為onclick(event),在IE8中便可正常使用,同時增加了版本判斷,使得代碼兼容老版本的IE,例如IE6/IE7。
方法如下:
打開 Editor/Js/Editor.js,把下面的
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()");
}
或者
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
if(Sys.ie=='8.0') //IE版本判斷
{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
}
else
{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
}
************************************************************************************
不同寫法:
如果說web編輯器中用戶量,ewebeditor絕對占有一席之地。雖然隨著技術(shù)的發(fā)展,ckeditor的運用越來越廣泛,但眾多的系統(tǒng),
尤其是在asp系統(tǒng)中,ewebeditor依然廣泛存在。
在ie8中,默認情況下,會無法使用ewebeditor的彈出框功能,也就是說,它的插入圖片,文件功能卻因為無法調(diào)出而不能使用。
其實,這個問題的出現(xiàn),其根本原因是ewebeditor中使用了ie8不支持的anonymous()方法.
if () eval( + “anonymous()”);
我們先來看看什么是anonymous方法,從上面的代碼中,可以注意到這應(yīng)該是一個事件處理的代碼。由于用到了eval,而eval方法就
是執(zhí)行“字符串”中的js代碼.先來看看官方是怎么解釋的,我在這個網(wǎng)頁(
假如我們要處理點擊事件,我們通常需要編寫事件處理函數(shù),一般來說,DOM提供了捕捉事件的方法,另外,它還提供了Event類,
此類中包含了有關(guān)事件的所有信息,這樣,你就可以在自己的事件處理函數(shù)中使用它了。
onclick=”alert()”>點擊此處.
由于瀏覽器的不同,上述的處理方式也就有了小小的不同。Netscape瀏覽器中使用的方法是
function onclick(event) {
alert(this.onclick);
}
而在ie的8.0以前的版本中,則提供了另外一種處理方法,這種方法就是anonymous方法
function anonymous() {
alert(this.onclick);
}
由于ie8已經(jīng)不再兼容這個方法而是采用了和netscape相同的處理方法,因此,上述方法在ie8中就失去作用,也就導(dǎo)致了
ewebeditor
在ie8中無法使用插入圖片的問題。解決的方法就是使用netscape的處理方式,同時,為了兼容以前的瀏覽器,我們需要對
瀏覽器的類型進行判斷,并僅在ie8時使用netscape方法.
1、首先找到eWebEditor編輯器所在的目錄,然后搜索到editor.js文件,由于eWebEditor有很多個版本,所以editor.js
文件所在的目錄也有所不同,有的可能在Include目錄下,有的可能在js目錄下!
2、用記事本打開editor.js文件,找到如下代碼:
if (element.YUSERONCLICK) {
eval(element.YUSERONCLICK + "anonymous()");
}
由于eWebEditor編輯器版本不同,有的可能找不到上面的代碼,而是下面這樣的代碼,兩種代碼只是書寫格式不同而已,
含義是一樣的:
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
3、將上面的代碼替換為下面的代碼即可:
if(navigator.appVersion.match(/8./i)=='8.')
{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
}
else
{
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
}
雖然以上方法解決了IE8中使用的問題,但在Chrome、Opera、Firefox這三個瀏覽器下依然不能使用,所以建議各位開發(fā)網(wǎng)站時慎重使用eWebeditor編輯器,或者改用Fckeditor編輯器。