2010-06-10 100 views
0

我不知道为什么,但TinyMCE的删除textarea的问题TinyMCE的风格

所有

<style> 
... 
</style> 

信息我能做些什么? 10x

回答

0

<style>标签在文档正文中无效。

有可能以某种方式保护它们(至少它在CKEDitor的继任者中,请参阅here并搜索protectedSource),但主要问题应该是:他们为什么在那里?

1

作为记录CKEditor不是TinyMCE的继任者,只是竞争对手。

您可以通过在TinyMCE的验证配置中将'style'指定为允许的标签之一来将样式标签保留在内容中。只需添加:

extended_valid_elements: "style" 

将您传递给init的配置。

0

如果您使用WYSIWYG TinyMCE或CKEditor和框架CodeIgniter版本> 2.0,则可能会遇到消除样式属性的问题。

您可以在提交表单后设置样式。

这是地狱风格=“”?

也许你有这个选项在config.php文件中启用:

$config['global_xss_filtering'] = TRUE; 

禁用全局过滤后,所见即所得不输风格。

就个人而言,我并不想禁用此功能,所以我做了一个解决方法;基于Bart的建议,不乱用核心文件

编辑O);

此安全是为某些加入邻)原因,所以为了不彻底摆脱它,我创建了一个存储标签样式不会被删除的地址的数组。

您需要创建MY_Security.php文件扩展名核安全 类,并添加修改功能_remove_evil_attributes。

protected function _remove_evil_attributes($str, $is_image){ 
    // All javascript event handlers (e.g. onload, onclick, onmouseover), style, and xmlns 
    $allowed = array("your allowed url's without domain like '/admin/edittext/'"); 
    if(in_array($_SERVER['REQUEST_URI'],$allowed)){ 
    $evil_attributes = array('on\w*', 'xmlns'); 
    }else{ 
    $evil_attributes = array('on\w*', 'style', 'xmlns'); 
    } 

    if ($is_image === TRUE){ 
    /* 
    * Adobe Photoshop puts XML metadata into JFIF images, 
    * including namespacing, so we have to allow this for images. 
    */ 
    unset($evil_attributes[array_search('xmlns', $evil_attributes)]); 
    } 

    do { 
    $str = preg_replace(
     "#&lt;(/?[^&gt;&lt;]+?)([^A-Za-z\-])(".implode('|', $evil_attributes).")(\s*=\s*)([\"][^&gt;]*?[\"]|[\'][^&gt;]*?[\']|[^&gt;]*?)([\s&gt;&lt;])([&gt;&lt;]*)#i", 
     "&lt;$1$6", 
     $str, -1, $count 
    ); 
    } while ($count); 
    return $str; 
} 

源:http://blog.codebusters.pl/en/codeigniter-202-tinymce-or-ckeditor-style-attribute-lost-after-update/#comment-543