ckEditor - 防止base64图像

时间:2013-07-10 10:19:53

标签: jsf primefaces ckeditor

我的JSF应用程序中有来自primefaces扩展的Primefaces ckEditor。

当粘贴电话号码时,它会巧妙地将其识别为电话号码,并生成一个电话图标的base64图像标记。源代码中没有任何内容可以生成此内容,因此必须将电话号码标识为电话号码,然后添加电话图标。

问题是,这个粘贴的文本然后在各个点从应用程序发送出去,当电子邮件到达Office 2007时,图像无法呈现,因为Outlook 2007似乎不喜欢base64图像类型,所以缺少提供图片图标。

如何防止自动识别电话号码,并防止在粘贴操作后创建任何base64类型的图像。

 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAKLSURBVHjadJPfS5NhFMe/21xvuhXRyJAZroiSrJnbRdT7vrAf5HBaK5RABmEEwQIvkpZ/QRcWXdSFw5soKaF0F7qZeLO13mGBDpQsf5CoxVKHOt0Pctp2uvEdrzG/V+c553w/54HnPDIiQiGpPMETABoB2AAYd9MRAMMAvGmX+RcAyAoBVJ7gZQDtABworH4AHWmX+bOMZdkjCoXiUzabvcAwzPSsob5p/VTNY9GcdpnxdmYZ9wJThSCtCr1e/4XjuNPd3d1KjUZzaGbI27ysqzGQoggAsLa1A7ehArrDxfDNr0oBlQB+wmKxbJFEL968SxoamsjkHaPU9l9piUo6A0RE1DG2QCWdASrpDAzJM5kMI8XecdjVxfEl+K9dxFgsgUvvR6HyBKHyBAEATyKLeGSsENuNcqk5kUjEGm7fzcYqr0ClVODl99+YXEvl6+c1amjVe+ahiGGYaUEQKnmeh91uL43rqheixjpdmzCL11er0PcjhrTLvMfUJsyKYUSeyWQ6enp6tgCgrKxsfbP8bB8AdE1G89cOReMAgOv+Cag8QXRNRkXAsDwcDr+am5tLCYKA3t7eo2dG+1vVK/MfpRPtA+MIReMYaKj+/xm9MiICx3EmpVL5wefzFavValis1u1vvHMkdfykCQC0kSGUTo+Ajmnx1dSC7IGD+UUCEYGIwLKsyWazrSeTSSIiMpnNf7Ttz5+ec96fr7/VnE0mk+QfHMzV3WjcKH/4rEr05QGFIA6HY4llWRLPRER+v3/HYrFMFQSIkNra2tVQKJSlfcSyLO0LECFWq3XF6XRGA4HAptTsdrsXeZ6fEHtl+31nAOA4rkUulz/I5XL63dQGgHEAN8Ph8AYA/BsAt4ube4GblQIAAAAASUVORK5CYII=" style="margin: 0px; border: currentColor; left: 0px; top: 0px; width: 16px; height: 16px; right: 0px; bottom: 0px; overflow: hidden; vertical-align: middle; float: none; display: inline; white-space: nowrap; position: static !important;" title="Call: +44 (0) 1111 1111" />

此致

3 个答案:

答案 0 :(得分:0)

这是由于浏览器中的某些扩展。

禁用所有扩展程序,然后一点一点地启用它们,找出哪一个是罪魁祸首。

答案 1 :(得分:0)

我正在使用正则表达式来保存这些内容...无法拦截ckEditor的粘贴事件。

public void setAutoSignature(String autoSignature) {

        //strip out base 64 img tags which can appear when phone numbers identified and phone icon appears 
        String pattern = "<img\\s[^>]*base64[^>]*>";
        autoSignature = autoSignature.replaceAll(pattern, "");

        this.autoSignature = autoSignature;
    }

答案 2 :(得分:0)

这是StackOverflow上的相关文章,可能会解决此问题: https://stackoverflow.com/a/23101048/2808203 如果只需要阻止base64图像,则在plugin.js中添加Javascript并进行修改。