我的WYSIWYG编辑器存在问题。如果用户在外部文本中复制,则会出现如下情况:
“p.p1 {margin:0.0px 0.0px 0.0px 0.0px;字体:11.0px'Lucida Grande'; min-height:13.0px} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px;字体:11.0px'Lucida Grande'}只有变量 在最后一个循环中分配的是 可以从a。范围之外访问 foreach循环。“
这显然有问题。
最重要的是,换行符似乎也存在问题,即<br />
标签。有时他们会被接走,有时候不会接受。
我一直在通过strip_tags()
运行内容,如下所示:
<?php
$body = strip_tags($body, '<a><br><b><i><img><ul><ol><li>');
对这里发生了什么有任何想法?
如果有帮助,我正在使用jWYSIWYG作为编辑器。
答案 0 :(得分:2)
关于 strip_tags()的查询:
php > $str="<br><br/><br />";
php > echo strip_tags($str, "<br>");
<br><br />
是否有可能使用<br/>
并被忽略?如果是这样,请将<br/>
添加到strip_tags(),例如
php > $str="<br><br/><br />";
php > echo strip_tags($str,'<br><br/>');
<br><br/><br />
答案 1 :(得分:0)
也许使用像http://ideone.com/VjMZY这样的preg_replace?
$str = preg_replace('/<br[^\>]*?>/', '', $str);
答案 2 :(得分:0)
我认为jwysiwg的问题跟踪器有关于浏览器端清理的相关评论。
Issue #32 stripping tags from Word:如果粘贴了文字格式,则提及恢复到之前的文字
所以我建议观察粘贴事件。在粘贴时,检查内容是否包含任何隐藏的Word标记。如果是,请提醒用户并将文本恢复到预粘贴状态。
答案 3 :(得分:0)
以下代码终于让它为我工作了:
$('iframe').ready(function() {
$(this).contents().find('.wysiwyg').find('iframe').contents()
.find('.wysiwyg').bind('paste', function() {
// Completely strips tags. Taken from Prototype library.
var el = $(this);
var strClean = el.text().replace(/<\/?[^>]+>/gi, '');
el.text(strClean);
}, 0);
});
});
看到这一点