1
0
Fork 0
forked from 0x2620/oxjs

update Message code

This commit is contained in:
rolux 2013-02-24 16:27:37 +05:30
commit e6bc3dcdbb
3 changed files with 70 additions and 41 deletions

View file

@ -23,30 +23,34 @@ Ox.Message = (function() {
}
});
/*@
.bind <f> Adds message handler
(callback) -> <o> Ox.Message
callback <f> Callback function
@*/
that.bind = function(callback) {
callbacks.push(callback);
return that;
};
that.post = function(/*[target, ]event, data */) {
var target, data, event;
if (arguments.length == 2) {
target = window.parent;
event = arguments[0];
data = arguments[1];
} else {
target = (
Ox.isElement(arguments[0][0])
? arguments[0][0]
: $('#' + arguments[0])[0]
).contentWindow;
event = arguments[1];
data = arguments[2];
}
/*@
.post <f> Sends a message
(target, event, data) -> <o> Ox.Message
target <o|s> Ox.$parent or iframe Ox.Element or element id
event <s> Event name
data <o> Event data
@*/
that.post = function(target, event, data) {
target = target == Ox.$parent ? window.parent
? Ox.isElement(target[0]) ? target[0]
: $('#' + target)[0];
target.postMessage(JSON.stringify({
event: event,
data: data,
oxid: window.oxid
}), '*');
return that;
};
return that;