forked from 0x2620/oxjs
update Message code
This commit is contained in:
parent
c1f9e9d7a3
commit
e6bc3dcdbb
3 changed files with 70 additions and 41 deletions
|
|
@ -93,32 +93,8 @@ Ox.Element = function(options, self) {
|
|||
that.on('load', function() {
|
||||
Ox.Message.post(that, 'init', {id: that.oxid});
|
||||
});
|
||||
that.onMessage = function() {
|
||||
var callback;
|
||||
if (Ox.isObject(arguments[0])) {
|
||||
Ox.forEach(arguments[0], function(callback, event) {
|
||||
Ox.Message.bind(arguments[0], function(event_, data, oxid) {
|
||||
if (event_ == event && oxid == that.oxid) {
|
||||
callback(data);
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
callback = arguments[0];
|
||||
Ox.Message.bind(function(event, data, oxid) {
|
||||
if (that.oxid == oxid) {
|
||||
callback(event, data);
|
||||
}
|
||||
});
|
||||
}
|
||||
return that;
|
||||
};
|
||||
that.postMessage = function(event, data) {
|
||||
Ox.Message.post(that, event, data);
|
||||
return that;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
setTooltip();
|
||||
|
||||
function mousedown(e) {
|
||||
|
|
@ -368,6 +344,42 @@ Ox.Element = function(options, self) {
|
|||
return that;
|
||||
};
|
||||
|
||||
/*@
|
||||
onMessage <f> Adds message handlers (if the element is an iframe)
|
||||
(callback) -> <o> This element
|
||||
Adds a catch-all handler
|
||||
(event, callback) -> <o> This element
|
||||
Adds a handler for a single event
|
||||
({event: callback, ...}) -> <o> This element
|
||||
Adds handlers for multiple events
|
||||
callback <f> Callback function
|
||||
data <o> event data (key/value pairs)
|
||||
event <s> Event name
|
||||
@*/
|
||||
that.onMessage = function() {
|
||||
// FIXME: Implement catch-all handler
|
||||
var callback;
|
||||
if (self.options.element == '<iframe>') {
|
||||
if (Ox.isObject(arguments[0])) {
|
||||
Ox.forEach(arguments[0], function(callback, event) {
|
||||
Ox.Message.bind(arguments[0], function(event_, data, oxid) {
|
||||
if (event_ == event && oxid == that.oxid) {
|
||||
callback(data);
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
callback = arguments[0];
|
||||
Ox.Message.bind(function(event, data, oxid) {
|
||||
if (that.oxid == oxid) {
|
||||
callback(event, data);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return that;
|
||||
};
|
||||
|
||||
/*@
|
||||
options <f> Gets or sets the options of an element object
|
||||
() -> <o> All options
|
||||
|
|
@ -385,6 +397,19 @@ Ox.Element = function(options, self) {
|
|||
return Ox.getset(self.options, arguments, update, that);
|
||||
};
|
||||
|
||||
/*@
|
||||
postMessage <f> Sends a message (if the element is an iframe)
|
||||
(event, data) -> This element
|
||||
event <s> Event name
|
||||
data <o> Event data
|
||||
@*/
|
||||
that.postMessage = function(event, data) {
|
||||
if (self.options.element == '<iframe>') {
|
||||
Ox.Message.post(that, event, data);
|
||||
return that;
|
||||
}
|
||||
};
|
||||
|
||||
/*@
|
||||
removeElement <f> Removes an element object and its event handler
|
||||
() -> <o> This element
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue