loadconfig.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. (function() {
  2. UE.Editor.prototype.loadServerConfig = function() {
  3. var me = this;
  4. setTimeout(function() {
  5. try {
  6. me.options.imageUrl &&
  7. me.setOpt(
  8. "serverUrl",
  9. me.options.imageUrl.replace(
  10. /^(.*[\/]).+([\.].+)$/,
  11. "$1controller$2"
  12. )
  13. );
  14. var configUrl = me.getActionUrl("config"),
  15. isJsonp = utils.isCrossDomainUrl(configUrl);
  16. /* 发出ajax请求 */
  17. me._serverConfigLoaded = false;
  18. configUrl &&
  19. UE.ajax.request(configUrl, {
  20. method: "GET",
  21. dataType: isJsonp ? "jsonp" : "",
  22. onsuccess: function(r) {
  23. try {
  24. var config = isJsonp ? r : eval("(" + r.responseText + ")");
  25. utils.extend(me.options, config);
  26. me.fireEvent("serverConfigLoaded");
  27. me._serverConfigLoaded = true;
  28. } catch (e) {
  29. showErrorMsg(me.getLang("loadconfigFormatError"));
  30. }
  31. },
  32. onerror: function() {
  33. showErrorMsg(me.getLang("loadconfigHttpError"));
  34. }
  35. });
  36. } catch (e) {
  37. showErrorMsg(me.getLang("loadconfigError"));
  38. }
  39. });
  40. function showErrorMsg(msg) {
  41. console && console.error(msg);
  42. //me.fireEvent('showMessage', {
  43. // 'title': msg,
  44. // 'type': 'error'
  45. //});
  46. }
  47. };
  48. UE.Editor.prototype.isServerConfigLoaded = function() {
  49. var me = this;
  50. return me._serverConfigLoaded || false;
  51. };
  52. UE.Editor.prototype.afterConfigReady = function(handler) {
  53. if (!handler || !utils.isFunction(handler)) return;
  54. var me = this;
  55. var readyHandler = function() {
  56. handler.apply(me, arguments);
  57. me.removeListener("serverConfigLoaded", readyHandler);
  58. };
  59. if (me.isServerConfigLoaded()) {
  60. handler.call(me, "serverConfigLoaded");
  61. } else {
  62. me.addListener("serverConfigLoaded", readyHandler);
  63. }
  64. };
  65. })();