diff options
Diffstat (limited to 'program/js/app.js')
-rw-r--r-- | program/js/app.js | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/program/js/app.js b/program/js/app.js index 53a746265..208e9b489 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -4849,7 +4849,7 @@ function rcube_webmail() return true; }; - + this.update_identity_row = function(id, name, add) { var row, col, list = this.identity_list, @@ -6316,6 +6316,32 @@ function rcube_webmail() } }; + this.mailto_handler_uri = function() + { + return location.href.split('?')[0] + '?_task=mail&_action=compose&_to=%s'; + }; + + this.register_protocol_handler = function(name) + { + try { + window.navigator.registerProtocolHandler('mailto', this.mailto_handler_uri(), name); + } + catch(e) {}; + }; + + this.check_protocol_handler = function(name, elem) + { + var nav = window.navigator; + if (!nav + || (typeof nav.registerProtocolHandler != 'function') + || ((typeof nav.isProtocolHandlerRegistered == 'function') + && nav.isProtocolHandlerRegistered('mailto', this.mailto_handler_uri()) == 'registered') + ) + $(elem).addClass('disabled'); + else + $(elem).click(function() { rcmail.register_protocol_handler(name); return false; }); + }; + } // end object rcube_webmail |