>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >как выполнить javascript расширения через protocol handler? http://forum.mozilla-russia.org/viewtopic.php?id=67405 |
IVIAKC > 22-05-2015 16:43:03 |
подскажите, как написать протокол, чтобы по адресу myprotocol:myscript запускался скрипт myscript.js из моего расширения? для простого редиректа есть описания с примерами, например https://mike.kaply.com/2011/01/18/writi … l-handler/ или http://talkweb.eu/fosdem-protocol-for-m … sdemabout/ Выделить код Код:newChannel: function(aURI) { var ioservice = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); var uri = ioservice.newURI("http://google.com/", null, null); var channel = ioservice.newChannelFromURI(uri, null).QueryInterface(Ci.nsIHttpChannel); return channel; } а как сделать, что запускался скрипт вместо редиректа? спасибо за помощь. |
Infocatcher > 22-05-2015 16:55:21 |
IVIAKC |
IVIAKC > 22-05-2015 17:07:53 |
Infocatcher так не работает Выделить код Код:newChannel: function(aURI) { var ioservice = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); var channel = ioservice.newChannel("javascript:alert('hello');", null, null); return channel; } |
Infocatcher > 22-05-2015 19:55:23 |
Смотря что надо скриптом делать. И надо ли выполнять разное или всегда одно и то же. Выделить код Код:Components.utils.import("resource://gre/modules/Services.jsm"); var ph = Components.interfaces.nsIProtocolHandler; ... protocolFlags: ph.URI_NORELATIVE | ph.URI_NOAUTH | ph.URI_LOADABLE_BY_ANYONE | ph.URI_NON_PERSISTABLE | ph.URI_DOES_NOT_RETURN_DATA, ... newChannel: function(aURI) { var window = Services.wm.getMostRecentWindow(null); if(window) window.alert("Something"); return null; } Вот два примера протоколов: |
IVIAKC > 22-05-2015 23:48:59 |
спасибо, буду разбираться |