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