使用 HTMLPurifier for Laravel,我遇到了一个问题。
以论坛中的这段代码为例:
<a href="http://www.extramileleeds.co.uk/" class="bbc_url"
title="External link" rel="nofollow external"
>http://www.extramileleeds.co.uk/</a>
论坛上的内容仅显示为链接。我正在为我的文本编辑器使用 contenteditble
div,并使用 HTMLPurifier
去除除图像标签及其来源之外的所有内容。
我的目标是让用户能够进入论坛,复制和粘贴任何内容。从字面上看,所有的图像和链接等,我把整个事情清理成纯文本和图像。
这有效,直到您直接插入一些 HTML。
因此,如果我将上面的源代码复制到我的编辑器中,而不是从页面复制和粘贴,它不会被HTMLPurifier
触及。
问题是因为在发布表单之前,我通过jQuery将数据从contentEditablediv传输到文本输入。传输的文本只能通过 .val() 设置,并且字符串被编码为特殊的字符。
为了修复,我将文本输入更改为文本区域,并将 jQuery 切换为使用 .html() 代替。