eWebEditor不支持IE8的解決方法
來源:
發布時間:2010/9/16
瀏覽次數:1009
現在公布方法:替換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也出現了不兼容問題.下面是解決辦法:
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()");