2012-04-13 15 views
1

我需要創造這樣做出來的文字,例如面板Dragabale文本到RadEditor

MY PANEL 

    Drag any of the items below into the editor: 

    CUSTOMER 
    BUSINESS_PHONE 
    BUSINESS_ADDRESS 

所以拖動到這個編輯器時,它會以下列方式

This is an example of how [[CUSTOMER]] has improved his business. 
You may contact them directly by dialing [[BUSINESS_PHONE]]. 

添加它它就像創建一個模板。我只是不確定使用什麼來完成這項工作..我們正在使用RadEditor。任何建議將不勝感激,請注意,我們不能更改編輯器,因爲我們在許多地方使用解決方案,如果有任何必須與編輯器集成。

非常感謝您

回答

2

我做過類似你正在試圖達到什麼樣的東西,你將有一些代碼在一些JavaScript添加到radEditor的該實例,具體添加到您的OnClientLoad功能捕獲丟棄事件,然後適當處理數據。棘手的部分是保持光標定位,因爲一旦它不在之前被刪除就必須解析HTML。

我真的建議儘可能使用插入按鈕和一個列表/對象,您可以從中選擇,單擊按鈕,把它插入到光標,它更容易實現。

但是這裏是沒有的我如何連接drop事件給編輯解析的代碼,我使用的是RadPanelBar拖動和下降。這甚至會觸發與任何阻力和下降到編輯器,我也建議使用一些像<span class="dragableItem">BusinessPhone</span>標記,你可以看看解析您的內容時。

如果你可以讓你的列表只是[商家電話]和拖放在那個顯然是最簡單的解決方案,雖然不優雅。

function OnClientLoad(editor) 
{ 

    var element = document.all ? editor.get_document().body : editor.get_document(); 
    //var eventHandler = document.all ? "drop" : "dragdrop"; 
    var eventHandler = "drop"; 
    $telerik.addExternalHandler(element, eventHandler, function(e) { 
     setTimeout(function() { 
      contentDropped(editor); 
     }, 300); 
    }); 
//.... 
} 


function contentDropped(editor) 
{ 
    var content = editor.get_html(); 
    //parse the content of the editor 
    editor.set_html(content); 
} 
+0

其實名單應該有值顯示像爲,[名]等。這是比較容易我認爲.. – user710502 2012-04-13 23:49:12

+0

如果是這樣的話只是拋出成radPanelBar ITEMLIST和用戶幾乎可以拖並把它放到編輯器中,你就完成了。 – 2012-04-14 01:25:10