环境是一个java Web应用程序,前端有jquery和jquery-ui。有一个管理站点,他们可以创建出现在“参与者”网站上的内容。
客户端需要管理站点上的WYSIWYG类型编辑器,以便他们可以将HTML粘贴到参与者站点上显示的textareas中。我一直在研究它们中的一些,并用cleditor进行了一些实验,它似乎很容易使用,它完成了我想要的大部分工作。我还被建议使用后端的AntiSamy plugin来防止他们的“管理员”添加恶意代码 - 我猜他们不会相信他们的管理员那么多。
但我有一个让我挠头的要求。他们希望添加到textareas的任何超链接进入另一个窗口(而不是每次都有不同的窗口)。所以基本上他们希望每个href中都有一个target="myWindow"
。并且他们希望这适用于他们是否在编辑器中创建超链接,或者他们是否粘贴了包含超链接的Word文档,这似乎是他们做了很多的事情。
我的问题是如何将此target
应用于所有href。是否有一个所见即所得的wysiwyg编辑器,或者可以在AntiSamy插件中完成(因为它已经解析了html)或者我是否需要在两者之间进行操作?
答案 0 :(得分:1)
数据发布后我会这样做。使用JSOUP解析HTML非常容易,并为其添加新目标。你也可以用RegEx做到这一点。
另一种选择是使用javascript并轻松添加
$(".somediv a").attr('target', '_blank');
最后一个选项,如果你不知道基本标签。您可以执行<base target='_blank'/>
,这将使您的所有href成为新目标。
修改
同样Justin指出,你可以在发布之前处理href。我不知道CKEdit有这个选项。这可能是更好的解决方案。
答案 1 :(得分:1)
当用户提交表单时,我会在页面上的JavaScript中处理它。您可以遍历所有锚标记并将必要的目标位添加到最后。这个过程与答案类似: