diff --git a/src/core/plugin.js b/src/core/plugin.js index 31d460d16..e7a3f4714 100644 --- a/src/core/plugin.js +++ b/src/core/plugin.js @@ -81,6 +81,10 @@ BI.Plugin = BI.Plugin || {}; return res || object; }, + hasObject: function (type) { + return __GlobalObjectConfigFns.length > 0 || !!_ObjectPlugin[type]; + }, + registerObject: function (type, fn) { if (!_ObjectPlugin[type]) { _ObjectPlugin[type] = []; diff --git a/src/core/shortcut.js b/src/core/shortcut.js index aa4a3b916..54af3bdbe 100644 --- a/src/core/shortcut.js +++ b/src/core/shortcut.js @@ -57,12 +57,14 @@ el = BI.extend({}, options, item); w = BI.Plugin.getWidget(el.type, el); if (w.type === el.type) { - w.listeners = (w.listeners || []).concat([{ - eventName: BI.Events.MOUNT, - action: function () { - BI.Plugin.getObject(el.type, this); - } - }]); + if (BI.Plugin.hasObject(el.type)) { + w.listeners = (w.listeners || []).concat([{ + eventName: BI.Events.MOUNT, + action: function () { + BI.Plugin.getObject(el.type, this); + } + }]); + } return createWidget(w, context, lazy); } return BI.createWidget(w, options, context, lazy); @@ -71,12 +73,14 @@ el = BI.extend({}, options, item.el); w = BI.Plugin.getWidget(el.type, el); if (w.type === el.type) { - w.listeners = (w.listeners || []).concat([{ - eventName: BI.Events.MOUNT, - action: function () { - BI.Plugin.getObject(el.type, this); - } - }]); + if (BI.Plugin.hasObject(el.type)) { + w.listeners = (w.listeners || []).concat([{ + eventName: BI.Events.MOUNT, + action: function () { + BI.Plugin.getObject(el.type, this); + } + }]); + } return createWidget(w, context, lazy); } return BI.createWidget(w, options, context, lazy);