eWebEditor不支持IE8/IE7的解决方法

现在公布方法:替换editor.js 函数 
// Toolbar button onmouseup handler
function BtnMouseUp() {
if (event.srcElement.tagName != "IMG") {
event.cancelBubble = true;
return false;
}

var image = event.srcElement;
var element = image.parentElement;

//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()"); 
     } 
element.className = "BtnMouseOverUp";
image.className = "Ico";

event.cancelBubble = true;
return false;
}
 
注意ASP.NET页面运行后的HTML标签的Name属性值可能要改变
 
运行前:
<form enctype="multipart/form-data" action="#" method="post" id="adminform" name="form1" runat="server">
<p>发表文章</p>
<span>标题:</span><input type="text" name="title" id="admintitle"  runat="server"/><br />
<span>附件:</span><asp:FileUpload id="file" runat="server"/><br />
<span>类型:</span><select name="type" id="adminselect" runat="server">
<option value="课件">课件</option>
<option value="代码">代码</option>
</select><br />
<span>内容:</span><br />
<textarea id="admintext" name="text" cols="70" rows="21"  runat="server"></textarea><br />
<input type="button" value="高级编辑" class="button" style="width:100px;" onclick="eWebEditorPopUp('adminform', 'admintext', 700, 500);"/>
<input type="reset" value="重置" class="button"/>
<asp:Button ID="button1" CssClass="button" runat="server" Text="提交" onclick="button1_Click"/>
<span id="fileex" runat="server"><a></a></span>
<span id="result" runat="server"><a></a></span>
</form>
 
运行后:
<form name="adminform" method="post" action="admin_admin.aspx" id="adminform" enctype="multipart/form-data">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE0MDM0NzkyMTgPZBYCAgMPFgIeCWlubmVyaHRtbAUHemFpdGlhbmRkskyzG8f4ESObK9M+JsGrnfiYCY8=" />
</div>
 
<p>发表文章</p>
<span>标题:</span><input name="admintitle" type="text" id="admintitle" /><br />
<span>附件:</span><input type="file" name="file" id="file" /><br />
<span>类型:</span><select name="adminselect" id="adminselect">
 <option value="课件">课件</option>
 <option value="代码">代码</option>
</select><br />
<span>内容:</span><br />
<textarea name="admintext" id="admintext" cols="70" rows="21"></textarea><br />
<input type="button" value="高级编辑" class="button" style="width:100px;" onclick="eWebEditorPopUp('adminform', 'admintext', 700, 500);"/>
<input type="reset" value="重置" class="button"/>
<input type="submit" name="button1" value="提交" id="button1" class="button" />
<span id="fileex"><a></a></span>
<span id="result"><a></a></span>
 
<div>
 
 <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQL/wejzAwKgz8D1BwL4jJyHDAKE9LONCQKs34rGBiVbt02kJursZrIBBXPl/aUiozt2" />
</div></form>

解决IE8不支持eWebEditor在线文本编辑器的方法如下:

    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()");

}

 

 

 

 

 

解决方法:

替换168行

if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");

把那个anonymous方法改成onclick就可以了。  

替换成如下代码:

if(navigator.appVersion.match(/MSIE (7|8)\./i)!=null){     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");  }else{     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); }

最近IE8出来了,ewebeditor也出现了不兼容问题.下面是解决办法:

<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> if (navigator.appVersion.match( / 8. / i) == ' 8. '   ||  navigator.appVersion.match( / 7. / i) == ' 7. ' ){    if  (element.YUSERONCLICK) eval(element.YUSERONCLICK  +   " onclick(event) " );  // IE8 or IE7 else  {    if  (element.YUSERONCLICK) eval(element.YUSERONCLICK  +   " anonymous() " );  // IE6 }

不过ewebeditor对其他浏览器也存在不兼容情况,建议还是用fckeditor.

今天检查公司一老站后台,发现eWebEditor编辑不能使用,按照前段时间的博文“IE 8.0 下 eWebEditor不能正常使用的解决办法”中修改了Edit.js一行代码。修改之后一同事使用IE7竟然不能正常使用该编辑器,修改之后可以。 估计还是那行代码的问题。恢复以前的,IE7可以而IE8不可以。看来还必须先判断IE版本然后再写不同的代码。 于是就使用了下面的代码: if(navigator.appVersion.match(/8./i)=='8.'){     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)"); }else{     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); } 修改之后在IE8和IE7均可以正常使用eWebEditor编辑器。 但是在装有IE8的机器上使用傲游浏览器竟然不能使用该编辑器,纳闷了,傲游是IE内核,应该可以呀。 于是就使用alert(navigator.appVersion)弹出信息,结果发现竟然是IE7? 如下图:

使用IE8弹出的如下图:

晕了!竟然不一样?难道傲游没有用到真正的IE8内核?还是显示的问题? 难道再加一句判断傲游的? 没办法: if(navigator.appVersion.match(/8./i)=='8.' || navigator.appVersion.match(/MAXTHON/i)=='MAXTHON'){     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)"); }else{     if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); } 前几天看新闻说傲游开发自己的内核浏览器,希望众多浏览器在兼容代码上好一些,不要浪费编写代码者的那么多找不兼容问题、调试不兼容问题的时间

你可能感兴趣的:(浏览器,IE,fckeditor,asp.net,asp)