2015-09-30 83 views
1

我正在開發一個向TinyMCE編輯器添加按鈕的WordPress插件。當單擊該按鈕時,所需的行爲應該是: 1.如果所選文本不是短(或短)的一部分,則應將短代碼插入到DOM中。 2如果不是,則應使用新代碼替換簡碼。TinyMCE替換父節點

第一個要求是fufilled,但第二個要求沒有。插入時,它會顯示在可視化編輯器中,但在保存或切換到文本時不會保存或顯示。這使我相信,即時通訊不是直接編輯編輯器下面的對象,而是直接編輯顯示的對象。什麼是正確的方式去做。請看下面的功能:

... 

    insertContent: function(){ 
    var atts = ''; 
    var node = tinyMCE.activeEditor.selection.getNode(); 
    var edit = $(node).is('div.wp-arv-faq'); 

    jQuery('./$p/-sc-input').each(function() { 
     atts = atts + jQuery(this).attr('name') + '=\"' + $(this).val() + "\" "; 
    }); 

    var caption = 'F.A.Q. ' + $('./$p/-sc-input[name="tax"] option:selected').text(); 
    var style  = $('./$p/-sc-input[name="style"] option:selected').text(); 
    atts += ' caption="' + caption + ' (' + style + ')"'; 

    if (edit){ 
     $(node).empty(); 

     tinyMCE.activeEditor.selection.setContent('[arv-faq ' + atts + '][/arv-faq]');  




    /$p/faqMCE.closeModal(); 
    }, 
... 

請注意,在「/ $ P /」是獨一無二的編譯過程中,應該被忽略。在此先感謝

回答

0

從你的問題是不是很清楚你想做什麼,但我想你是試圖插入HTML代碼到編輯器。

一定要選擇設置呼叫$(node).empty();

注後右:你的所有的標籤和屬性必須被配置爲允許標籤和使用valid_elements和valid_children配置paramters屬性。