摘 要:探討了eWebEditor作為網(wǎng)頁可視化編輯器,其IE8.0中的錯誤及解決方法。
關(guān)鍵詞:eWebEditor;IE8.0;使用錯誤;解決方法
作為網(wǎng)頁可視化編輯器的優(yōu)秀代表,eWebEditor在國內(nèi)占有較大的市場份額,它具有簡單、直觀、高效等特點。eWebEditor為商業(yè)軟件,非營利性的個人用戶可以在官方下載V2.8免費版,該版本是WinXP系統(tǒng)中IE6.0平臺下使用較為廣泛的版本之一。
隨著瀏覽器版本的不斷發(fā)展,不少用戶發(fā)現(xiàn)在非IE6.0瀏覽器下,eWebEditor V2.8編輯器無法正常使用:編輯器按鈕可以顯示,但鼠標(biāo)點擊時在任務(wù)欄出現(xiàn)錯誤提示,同時按鈕上的功能頁面對話框無法彈出。經(jīng)測試,IE7.0、8.0、9.0等均存在該錯誤,考慮到IE各版本的市場占有率等情況,本文僅探討IE8.0中的錯誤和解決之道。
eWebEditor V2.8程序包中的eWebEditor.asp為主文件,在網(wǎng)頁中通過嵌入iframe框架來調(diào)用該文件,加上不同的參數(shù)即顯示為不同風(fēng)格和功能的可視化編輯器。在eWebEditor.asp文件中調(diào)用了2個Javascript腳本文件,分別實現(xiàn)了按鈕生成和鼠標(biāo)事件響應(yīng):
從錯誤現(xiàn)象得知,eWebEditor V2.8編輯器的按鈕顯示正常,只是鼠標(biāo)點擊時出現(xiàn)錯誤提示且不能彈出功能頁面,意即menu.js工作正常,而editor.js未正常工作導(dǎo)致不能響應(yīng)鼠標(biāo)的點擊請求。分析editor.js文件代碼發(fā)現(xiàn),它通過如下語句定義了一個函數(shù)BtnMouseUp( )來響應(yīng)鼠標(biāo)點擊事件:
function BtnMouseUp( ){
…
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + “anonymous( )”);
…
}
在上述代碼中,匿名函數(shù)anonymous()僅在IE6.0下有效,在IE8.0等平臺中均已停止使用,所以該段語句在IE8.0中不能正確執(zhí)行,點擊按鈕后也就無法彈出功能頁面對話框。解決思路是,首先通過if語句判斷IE版本號是否為8.0,如果是則將原來的anonymous()替換成該版本可以執(zhí)行的onclick(),否則繼續(xù)執(zhí)行原來的代碼。改進(jìn)后的BtnMouseUp()函數(shù)如下所示:
function BtnMouseUp( ) {
…
if(navigator.appVersion.match(/8./i)=='8.')
{
if(element.YUSERONCLICK) eval(element.YUSERONCLICK+“onclick(event)”);
}
else
if(element.YUSERONCLICK) eval(element.YUSERONCLICK+
“anonymous( )”);
…
}
按照上述代碼將BtnMouseUp( )函數(shù)的語句塊更新后,該函數(shù)在IE8.0和IE6.0中均可以正常執(zhí)行,點擊eWebEditor V2.8編輯器按鈕也可以彈出功能頁面對話框。
(作者單位 成都市工業(yè)職業(yè)技術(shù)學(xué)校)