摘 要:探讨了eWebEditor作为网页可视化编辑器,其IE8.0中的错误及解决方法。
关键词:eWebEditor;IE8.0;使用错误;解决方法
作为网页可视化编辑器的优秀代表,eWebEditor在国内占有较大的市场份额,它具有简单、直观、高效等特点。eWebEditor为商业软件,非营利性的个人用户可以在官方下载V2.8免费版,该版本是WinXP系统中IE6.0平台下使用较为广泛的版本之一。
随着浏览器版本的不断发展,不少用户发现在非IE6.0浏览器下,eWebEditor V2.8编辑器无法正常使用:编辑器按钮可以显示,但鼠标点击时在任务栏出现错误提示,同时按钮上的功能页面对话框无法弹出。经测试,IE7.0、8.0、9.0等均存在该错误,考虑到IE各版本的市场占有率等情况,本文仅探讨IE8.0中的错误和解决之道。
eWebEditor V2.8程序包中的eWebEditor.asp为主文件,在网页中通过嵌入iframe框架来调用该文件,加上不同的参数即显示为不同风格和功能的可视化编辑器。在eWebEditor.asp文件中调用了2个Javascript脚本文件,分别实现了按钮生成和鼠标事件响应:
从错误现象得知,eWebEditor V2.8编辑器的按钮显示正常,只是鼠标点击时出现错误提示且不能弹出功能页面,意即menu.js工作正常,而editor.js未正常工作导致不能响应鼠标的点击请求。分析editor.js文件代码发现,它通过如下语句定义了一个函数BtnMouseUp( )来响应鼠标点击事件:
function BtnMouseUp( ){
…
if (element.YUSERONCLICK) eval(element.YUSERONCLICK + “anonymous( )”);
…
}
在上述代码中,匿名函数anonymous()仅在IE6.0下有效,在IE8.0等平台中均已停止使用,所以该段语句在IE8.0中不能正确执行,点击按钮后也就无法弹出功能页面对话框。解决思路是,首先通过if语句判断IE版本号是否为8.0,如果是则将原来的anonymous()替换成该版本可以执行的onclick(),否则继续执行原来的代码。改进后的BtnMouseUp()函数如下所示:
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( )函数的语句块更新后,该函数在IE8.0和IE6.0中均可以正常执行,点击eWebEditor V2.8编辑器按钮也可以弹出功能页面对话框。
(作者单位 成都市工业职业技术学校)