addhaloka
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору код: Код: //Просто запуск левой кнопкой мыши //this. runUSDownloader (""); //Копировать текст из адресной строки. (aka. "Awesome Bar") в буфер обмена. if (window._content.document.location.href.length < 1) return; var txt = window._content.document.location.href; var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); if (!trans) return; trans.addDataFlavor('text/unicode'); var str = new Object(); var len = new Object(); var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); var copytext = txt; str.data = copytext; trans.setTransferData("text/unicode",str,copytext.length*2); var clipid = Components.interfaces.nsIClipboard; if (!clip) return false; clip.setData(trans,null,clipid.kGlobalClipboard); //Запускать ЛКМ с передачей содержимого буфера обмена this. runUSDownloader (custombuttonsUtils. gClipboard. read ()); | инициализация: Код: var profileDir = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsILocalFile) .path; var path = profileDir + "\\..\\..\\..\\Firefox-Portable\\Soft\\USDownloader\\USDownloader.exe"; this. runUSDownloader = function (url) { var file = Components. classes["@mozilla.org/file/local;1"]. createInstance (Components.interfaces.nsILocalFile); var process = Components. classes ["@mozilla.org/process/util;1"]. createInstance (Components. interfaces. nsIProcess); file. initWithPath (path); process. init (file); if (!this. pid) this. pid = []; this. pid. push (process. run (false, url && [url]|| null, url && 1 || 0)); }; //Запускать с передачей ссылки. this. handleDragOver = function (event) { var dt = event. dataTransfer; var url = dt. mozGetDataAt ("text/plain", 0); if (!url) return; event. preventDefault (); event. stopPropagation (); return dt. effectAllowed = dt. dropEffect = "link"; } this. handleDrop = function (event) { var dt = event. dataTransfer; var url = dt. mozGetDataAt ("text/plain", 0); if (url) this. runUSDownloader (url); }; this. setAttribute ("ondragdrop", "return this. handleDrop (event);"); this. setAttribute ("ondragover", "return this. handleDragOver (event);"); |
|