2016-01-06 101 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

好的脚本和输入和表单标签怎么样? –