-------------------------
自己解决了,方法见下面
--------------------------
用了一个蛋都能疼死的方式解决了.
因为防盗链是通过referer判断的,,而ueditor使用if
貌似这变成了一个无解的两难,要不取消防盗链,要不换编辑器.
哭死了.
-----------------------------
无意间在胡乱尝试的时候,发现物如果插入的是页面上其他地方已经显示过的图片(其实就是网站的logo)的时候,编辑器里神奇的直接显示了图片??
仔细一想,原来网页上应用图片的时候是有referer的,图片已经在缓存里了!
编辑器里面的img是从缓存里获得的图片!!
之下好办了.
直接加一个隐藏的div
<div class="pure-u-1" id="abc001">
abc001隐藏图片在这里
</div>然后拦截ueditor的事件u1=UE.getEditor('pb63inputcontent');
u1.addListener('beforeInsertImage', function (t, arg) {
for(var obj in arg){
console.log(arg[obj].src);
var vhtml='<br/><img src="'+arg[obj].src+'" style="width:100%;"/>';
//u1.execCommand( 'inserthtml', vhtml);
$("#abc001").append(vhtml);
};
});在向编辑器插入图片之前先添加到隐藏的div里,因为div里的图片不违反盗链规则.所以就正常加载了,然后,编辑器里的img标签就从缓存获得图片正常显示了.注意要使用多图上传的那个按钮.单独上传比较麻烦,没有现成的事件.可以根据这个思路自己琢磨.
--------------------------------------------------------------------
真是一个比蛋碎了还令人心痛的解决方案.
如果需要的,拿去用吧.
别忘了默念:感谢你啊,我亲爱的祖国,党啊,俺滴度娘!
--------------
再多说一句,uedit的图片选择功能面板可能不太适合你的要求,可以完全自定义一个图片选择面板然后用:
u1.execCommand( 'inserthtml', vhtml);插入图片就行了,还可以更好的定义img的表现形式,比如width:100%图片自适应什么的解决移动端访问的图片显示不全问题.这就是另外的话题了,自己研究吧.
最佳答案