2016-01-06 36 views
1

我正在使用tinyMCE 4.3.2,並且我已經啓動了tinyMCE,如下所述。TinyMCE不會阻止無效元素

tinymce.init({ 
        selector: '#modal-content .tinymce', 
        theme: 'modern', 
        external_plugins: { 
         'lists': '/assets/js/tinymce/plugins/lists/plugin.min.js', 
         'link': '/assets/js/tinymce/plugins/link/plugin.min.js', 
         'charmap': '/assets/js/tinymce/plugins/charmap/plugin.min.js', 
         'hr': '/assets/js/tinymce/plugins/hr/plugin.min.js', 
         'searchreplace': '/assets/js/tinymce/plugins/searchreplace/plugin.min.js', 
         'paste': '/assets/js/tinymce/plugins/paste/plugin.min.js', 
         'wordcount': '/assets/js/tinymce/plugins/wordcount/plugin.min.js', 
         'visualblocks': '/assets/js/tinymce/plugins/visualblocks/plugin.min.js', 
         'visualchars': '/assets/js/tinymce/plugins/visualchars/plugin.min.js', 
         'code': '/assets/js/tinymce/plugins/code/plugin.min.js', 
         'table': '/assets/js/tinymce/plugins/table/plugin.min.js', 
         'contextmenu': '/assets/js/tinymce/plugins/contextmenu/plugin.min.js' 
        }, 
        toolbar1: "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link code", 
        valid_elements: 'a[*],p[*],ul[*],li[*]', 
        invalid_elements: "script,object,embed,link,style,form,input,iframe", 
        relative_urls: true, 
        remove_script_host: true 
       }); 

當我試圖在JavaScript中取得價值時,它並沒有防止無效元素。它採取iframe,腳本和所有其他無效元素。但是,當表單提交時,它在PHP中正常工作,並且當我在post中獲取數據時。

我試圖從下面提到的方式來編輯的價值。但它不起作用。

tinymce.triggerSave(); 
tinyMCE.get('editor').getContent({format : 'text'}) 
tinyMCE.get('editor').getContent({format : 'raw'}) 

我希望能夠在通過Ajax向服務器發送值之前防止無效元素。讓我知道是否有任何最好的方法來防止無效元素。

+0

您可以嘗試在獲取內容之前調用tinyMCE.get('editor')。triggerSave(),這可能會觸發tinymce的清理功能 – Thariama

+0

是的,我添加了tinymce.triggerSave();在我拿到價值之前。 –

+0

你能展示使用你的實現的生動的例子嗎? – Thariama

回答

1

您在這裏做的是將字符串'<iframe src="google.com"></iframe>'添加到編輯器內容中,但這不是dom元素,因此不會被tinymce刪除。一切都是應該的。

+0

所以你的意思是說,我需要通過javascript找到html標記,並手動防止無效元素,這是唯一的方法! –

+0

當你有你的標籤字符串形式,而不是在編輯器中的dom元素,那麼你將不得不使用字符串操作。順便說一下,你不能在一個tinymce編輯器中插入iframe標籤作爲真正的dom元素,因爲tinymce本身使用自己的頭部和身體dom元素的iframe來編輯body dom元素中的內容。 – Thariama

+0

好的腳本和輸入和表單標籤怎麼樣? –