gpt4 book ai didi

php - 删除未关闭的 html 标签 - 同时将内容粘贴到带有 contenteditable 的 div

转载 作者:行者123 更新时间:2023-11-30 21:56:35 26 4
gpt4 key购买 nike

我正在努力寻找使用

的解决方案

div using contenteditable

PHP

<div class="panel-body">
<div contenteditable="true" style="text-align: justify" id="text_data_1">
<?php echo(html_entity_decode($text_data_from_backend))?>
</div>
</div>

j查询

 var postFormData =  {
'agent_id' : $("#text_data_1").val(),
'actionmode' : id
};
var link = 'myfile.php';
$.fn.getajaxresponse(link, postFormData, $.fn.this_callback);

数据被粘贴或输入到可内容编辑的 div 中。当最终用户从带有未正确关闭的标签的网站粘贴内容时,整个 html 布局将失败。

我正在使用 div contenteditable 以便保留新行和基本 html 标记,并可以在数据库中来回处理。

有没有办法删除未正确关闭的 html 标签,我相信这是实现此方法的障碍。请注意我使用 jQuery、PHP 和 MySQL

最佳答案

感谢您的回复。

这有点棘手,在搜索时我发现了一个库,其中 jQuery 在不使用正则表达式的情况下进行了清理

  1. 我将名为 Trumbowyg 的编辑器附加到 div - http://alex-d.github.io/Trumbowyg/这很简单也很酷。这个是轻量级的,并且需要将js文件添加到所需的页面。
  2. 在通过 ajax 保存时,调用了一个函数,其中 JClean [ https://code.google.com/archive/p/jquery-clean/]库用于清理未关闭的标签。在需要的页面添加Jclean js文件

这就是我最终做到的。

  1. 附上编辑器

    $.fn.attach_event_div_contenteditable = function(){                  
    var tb_buttons = [
    ['viewHTML'],
    ['formatting'],
    'btnGrp-semantic',
    ['superscript', 'subscript'],
    ['link'],
    'btnGrp-justify',
    'btnGrp-lists',
    ['horizontalRule'],
    ['removeformat'],
    ['fullscreen']
    ];
    $('#text_data_1').trumbowyg({
    removeformatPasted: true,
    btns: tb_buttons,
    height:"100%",
    });
    $('#text_data_2').trumbowyg({
    removeformatPasted: true,
    btns: tb_buttons,
    });
    $('#text_data_3').trumbowyg({
    removeformatPasted: true,
    btns: tb_buttons,
    });
    $('#text_data_4').trumbowyg({
    removeformatPasted: true,
    btns: tb_buttons,
    });
    }
  2. 清洁元素

    $.fn.get_latest_value = function(elem){
    var tagname = elem.prop("tagName");
    var returnvalue = "";
    switch(tagname.toUpperCase()){
    case "TEXTAREA":
    returnvalue = elem.val();break;
    case "INPUT":
    returnvalue = elem.val(); break;
    default:
    returnvalue = elem.html();break;
    }
    returnvalue = returnvalue.replace(/\"/g,'&quot;');
    returnvalue = returnvalue.replace(/\'/g,'&apos;');
    var temp = $("<input value='"+returnvalue+"'/>");
    returnvalue = $.htmlClean(temp.val(), { format: true });
    return returnvalue;
    }

Ajax 调用

 var postFormData =  {
'agent_id' : $.fn.get_latest_value($("#text_data_1")),
'actionmode' : id
};
var link = 'myfile.php';
$.fn.getajaxresponse(link, postFormData, $.fn.this_callback);

这是我能找到的最好的答案,然后继续。希望这对任何想知道我是如何修复它的人有所帮助。

关于php - 删除未关闭的 html 标签 - 同时将内容粘贴到带有 contenteditable 的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44952919/

26 4 0