海口秀英隆智慧网络科技工作室
咨詢熱線:400-822-8458 客戶服務:0898-32183600

eWebeditor上傳圖片後自動給圖片增加鏈接

發表于:2011-07-06 00:00:00來源:SOUAB.COM人氣:3544

目标就是實現上傳圖片後可以自動給圖片添加新窗口鏈接,因爲他使用的是ewebeditor2.8的免費(fèi)版,所以就要看看ewebeditor是怎麽實現的啦。
大(dà)緻分(fēn)析了一(yī)下(xià),應該都是在/dialog/img.htm裏控制的:
 

131行:
sHTML = '<img id=eWebEditor_TempElement_Img src="'+sFromUrl+'"'+sHTML;

在這裏加入圖片的超鏈接應該就可以解決問題:

sHTML = '<a href='+sFromUrl+' target=_blank><img id=eWebEditor_TempElement_Img src="'+sFromUrl+'"'+sHTML;

看起來是不錯的解決了問題,不過卻有一(yī)個小(xiǎo)毛病,那就是經過了154行處理以後img的地址是相對地址,href的地址卻是完整地址。

dialogArguments.insertHTML(sHTML);
img:
/xxx/xxx.gif
href:
http://www.xxx.com/xxx/xxx.gif

再往下(xià)看,發現後面對img進行了獨立的處理:

156~158
var oTempElement = dialogArguments.eWebEditor.document.getElementById("eWebEditor_TempElement_Img");
oTempElement.src = sFromUrl;
oTempElement.removeAttribute("id");

看起來在insertHTML中(zhōng)處理是一(yī)樣的。
下(xià)午這塊東西沒詳細看是怎麽回事,剛才翻了一(yī)下(xià)ewebeditor2.8的文件,在include/editor.js中(zhōng)看到insertHTML的内容如下(xià):

 

410行:
// 在當前文檔位置插入.
function insertHTML(html) {
 if (isModeView()) return false;
 if (eWebEditor.document.selection.type.toLowerCase() != "none"){
  eWebEditor.document.selection.clear() ;
 }
 if (sCurrMode!="EDIT"){
  html=HTMLEncode(html);
 }
 eWebEditor.document.selection.createRange().pasteHTML(html) ; 
}

前面的都沒什麽好說的,主要是利用了selection.createRange().pasteHTML(html)來把相對路徑處理成了完整路徑。看起來跟下(xià)午猜得差不多。
關于pasteHTML可以參考一(yī)下(xià)msdn的介紹:
http://msdn2.microsoft.com/en-us/library/ms536656.aspx
另外(wài)舉個簡單的例子:

<html>
<body>
<script language="JavaScript">
function replace() {
  var myRange = document.selection.createRange().pasteHTML('<p><b>www.coolersky.com</b></p>');
} 
</script>
<p>随便框選幾個字,然後點提交看看。By AcOol!</p>
<input id="m" type="button" value="提交" onclick="replace();">
</body>
</html>

言歸正傳,繼續。應該也要對href也作一(yī)下(xià)處理,翻了一(yī)下(xià)google,找到一(yī)個類似的,順便看了一(yī)下(xià)img.htm所在的目錄,發現/dialog/file.htm中(zhōng)有對href的處理過程,照貓畫虎搞了一(yī)下(xià)就好了。
最終代碼爲:

131行:
sHTML = '<a id=eWebEditor_TempElement_Href href='+sFromUrl+' target=_blank><img id=eWebEditor_TempElement_Img src="'+sFromUrl+'"'+sHTML;
......
156行:
var oTempElement = dialogArguments.eWebEditor.document.getElementById("eWebEditor_TempElement_Img");
oTempElement.src = sFromUrl;
oTempElement.removeAttribute("id");
oTempElement = dialogArguments.eWebEditor.document.getElementById("eWebEditor_TempElement_Href");
oTempElement.href = sFromUrl;
oTempElement.removeAttribute("id");

文章整理: 世紀雲圖  /

以上信息與文章正文是不可分(fēn)割的一(yī)部分(fēn),如果您要轉載本文章,請保留以上信息,謝謝!

版權申明:本站文章部份來自網絡,如有侵權,請聯系我(wǒ)們,我(wǒ)們收到後立即删除,謝謝!

特别注意:本站部份轉載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯系,版權歸原作者所有。

微信
網站建設
軟件業務
網絡營銷
400電(diàn)話(huà)