getKfContent.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /**
  2. * Created by zhangbo21 on 14-9-2.
  3. */
  4. /*
  5. * getKfContent : 将image的src从base64替换为文件名
  6. * param : callback -- 回调函数 其参数为替换之后的内容
  7. * return : void
  8. * */
  9. UE.Editor.prototype.getKfContent = function(callback){
  10. var me = this;
  11. var actionUrl = me.getActionUrl(me.getOpt('scrawlActionName')),
  12. params = UE.utils.serializeParam(me.queryCommandValue('serverparam')) || '',
  13. url = UE.utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params);
  14. // 找到所有的base64
  15. var count = 0;
  16. var imgs =me.body.getElementsByTagName('img');
  17. var base64Imgs = [];
  18. UE.utils.each(imgs, function(item){
  19. var imgType = item.getAttribute('src').match(/^[^;]+/)[0];
  20. if ( imgType === 'data:image/png') {
  21. base64Imgs.push(item);
  22. }
  23. });
  24. if (base64Imgs.length == 0){
  25. execCallback();
  26. } else {
  27. UE.utils.each(base64Imgs, function(item){
  28. var opt ={};
  29. opt[me.getOpt('scrawlFieldName')]= item.getAttribute('src').replace(/^[^,]+,/, '');
  30. opt.onsuccess = function(xhr){
  31. var json = UE.utils.str2json(xhr.responseText),
  32. url = me.options.scrawlUrlPrefix + json.url;
  33. item.setAttribute('src', url);
  34. item.setAttribute('_src', url);
  35. count++;
  36. execCallback();
  37. }
  38. opt.onerror = function(err){
  39. console.error(err);
  40. count++;
  41. execCallback();
  42. }
  43. UE.ajax.request(url, opt);
  44. });
  45. }
  46. function execCallback(){
  47. if (count >= base64Imgs.length) {
  48. me.sync();
  49. callback(me.getContent());
  50. }
  51. }
  52. };