Что-то не получается разобраться в вашем коде...
Папка куда сохранять указывается вместо [gmail] ?
Мне нужно письмо на локальной машине что бы сохранялось, возможно вы меня не правильно поняли.
Отредактировано AbyssMoon (06-10-2010 13:04:00)
Отсутствует
Чтобы сохранять в «Локальные папки» почтового клиента, задайте в качестве адреса что-нибудь типа mailbox://nobody@Local%20Folders/Todo.
Если же вы хотите сохранять eml/html/txt-файлы в папку локальной файловой системы без диалога с выбором папки или файла, тут нужно повозиться, мне неохота .
Отредактировано luitzen (06-10-2010 18:56:21)
Отсутствует
AbyssMoon
Где-нибудь в настройках нужно задать путь до какой-либо папки, на панель выносится кнопка по нажатию на которую выделенное письмо или письма сохраняются в папке, путь к которой указан в настройках, все...
Если речь идет о папке на диске, вот код:
var pathToDirectory = "~/mymail"; // "/home/user/mymail var Cc = Components. classes; var Ci = Components. interfaces; function getDirectory () { var dir = Cc ["@mozilla.org/file/local;1"]. createInstance (Ci. nsILocalFile); dir. initWithPath (pathToDirectory); return dir; } function saveAsFile (uri, dir) { var content = ""; var subject = messenger. messageServiceFromURI (uri). messageURIToMsgHdr (uri). mime2DecodedSubject; var filename = GenerateValidFilename (subject, ".eml"); var msgService = messenger. messageServiceFromURI (uri); var msgStream = Cc ["@mozilla.org/network/sync-stream-listener;1"]. createInstance (); var consumer = msgStream. QueryInterface (Ci. nsIInputStream); var scriptInput = Cc ["@mozilla.org/scriptableinputstream;1"]. createInstance (); var scriptInputStream = scriptInput. QueryInterface(Ci. nsIScriptableInputStream); scriptInputStream. init (consumer); try { msgService. streamMessage (uri, msgStream, msgWindow, null, false, null); } catch (ex) { alert("error: "+ex) } scriptInputStream. available (); while (scriptInputStream. available ()) { content = content + scriptInputStream. read (512); } var subject = msgService. messageURIToMsgHdr (uri). mime2DecodedSubject; var fileName = GenerateValidFilename (subject, ".eml"); var file = dir. clone (); file. append (fileName); if (file. exists ()) file. createUnique (Ci. nsIFile. NORMAL_FILE_TYPE, 0664); var foStream = Cc ["@mozilla.org/network/file-output-stream;1"]. createInstance (Ci. nsIFileOutputStream); var flags = 0x02 | 0x08 | 0x20; foStream. init (file, flags, 0664, 0); foStream. write (content, content. length); foStream. close (); } var dir = getDirectory (); if (!dir) return; var messageArray = gFolderDisplay.selectedMessageUris; for (var i = 0; i < messageArray. length; i++) saveAsFile (messageArray [i], dir);
Добавлено 06-10-2010 19:10:02
bunda1
вот код который автоматически копирует выделенный текст
пожалуйста подскажи код который по ЛКМ включал и отключал мой код с сменой иконки.
Как-то вот так:
var eventHandler = { button: null, mousedown: function () { this. lastSelection = getBrowserSelection (); }, mouseup: function () { var selection = getBrowserSelection (); if (selection && (selection != this. lastSelection)) goDoCommand ("cmd_copy"); }, handleEvent: function (event) { if (this. button. checked) this [event. type] (); } }; eventHandler. button = this; //this. type = "checkbox"; window. addEventListener ("mousedown", eventHandler, false); window. addEventListener ("mouseup", eventHandler, false);
this. checked = !this. checked; if (this. checked) this. image = "http://corset.47.forumer.com/imageset/corset/items.png"; else this. image = "http://corset.47.forumer.com/imageset/corset/element.png";
window. addEventListener ("mousedown", eventHandler, false); window. addEventListener ("mouseup", autocopyStop, false);
пользоваться
addEventListener ("mousedown", eventHandler, false); addEventListener ("mouseup", eventHandler, false);
Отредактировано Anton (06-10-2010 19:33:57)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
а можно что бы сохранялся только текст сообщения в теле файла без всего остального мусора?
Только так:
var pathToDirectory = "~/mymail"; var preserveCharset = true; var useOutCharset = true; var outCharset = "utf-8"; var outType = "text"; // "html", "text" var Cc = Components. classes; var Ci = Components. interfaces; var Cr = Components. results; function getDirectory () { var dir = Cc ["@mozilla.org/file/local;1"]. createInstance (Ci. nsILocalFile); dir. initWithPath (pathToDirectory); return dir; } function getText (uri) { var header = messenger. messageServiceFromURI (uri). messageURIToMsgHdr (uri); var charset = header. Charset || "utf-8"; var subject = header. mime2DecodedSubject; var filename = GenerateValidFilename (subject, (outType == "html"? ".html": ".txt")); var messageService = messenger. messageServiceFromURI (uri); var body = ""; var dataListener = { QueryInterface: function (aIID) { if (aIID. equals (Ci. nsISupports) || aIID. equals (Ci. nsIStreamListener)) return this; throw Cr. NS_NOINTERFACE; }, onStartRequest: function () {}, onStopRequest: function () { try { var suc = Cc ["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance (Ci. nsIScriptableUnicodeConverter); suc. charset = charset; body = suc. ConvertToUnicode (body); var s1 = Cc ["@mozilla.org/supports-string;1"]. createInstance (Ci. nsISupportsString); s1. data = body; var s2 = {}; var content = body; if (outType == "text") { var ios = Cc ["@mozilla.org/widget/htmlformatconverter;1"]. createInstance (Ci. nsIFormatConverter); ios. convert ("text/html", s1, content. length, "text/unicode", s2, {}); content = s2. value. QueryInterface (Ci. nsISupportsString). data; } if (useOutCharset || preserveCharset) { suc = Cc ["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance (Ci. nsIScriptableUnicodeConverter); suc. charset = (preserveCharset? charset: outCharset) || "utf-8"; var content = suc. ConvertFromUnicode (content); } var file = dir. clone (); file. append (filename); if (file. exists ()) file. createUnique (Ci. nsIFile. NORMAL_FILE_TYPE, 0664); var foStream = Cc ["@mozilla.org/network/file-output-stream;1"]. createInstance (Ci. nsIFileOutputStream); var flags = 0x02 | 0x08 | 0x20; foStream. init (file, flags, 0664, 0); foStream. write (content, content. length); foStream. close (); } catch (e) { alert(e); } }, onDataAvailable: function (req, context, inputStream, offset, count) { var sis = Cc ["@mozilla.org/scriptableinputstream;1"]. createInstance(Ci. nsIScriptableInputStream); sis. init (inputStream); sis. available (); while (sis. available ()) body += sis. read (count); } }; var initialListener = { QueryInterface: function (aIID) { if (aIID. equals (Ci. nsISupports) || aIID. equals (Ci. nsIStreamListener)) return this; throw Cr. NS_NOINTERFACE; }, streamConverter: null, onStartRequest: function (request, context) { this. streamConverter = Cc ["@mozilla.org/streamconv;1?from=message/rfc822&to=application/vnd.mozilla.xul+xml"]. createInstance (Ci. nsIStreamConverter); this. streamConverter. asyncConvertData ("message/rfc822", "application/vnd.mozilla.xul+xml", dataListener, request); this. streamConverter. onStartRequest (request, context); }, onStopRequest: function (request, context, status) { this. streamConverter. onStopRequest (request, context, status); }, onDataAvailable: function (req, context, inputStream, offset, count) { this. streamConverter. onDataAvailable (req, context, inputStream, offset, count); } }; messageService. streamMessage (uri, initialListener, {}, null, true, null); } var dir = getDirectory (); if (!dir) return; var messageArray = gFolderDisplay.selectedMessageUris; for (var i = 0; i < messageArray. length; i++) getText (messageArray [i], dir);
Других идей нет.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Спасибо огромное!
У меня создается файл, но он пустой, занимает 1б.
В чем может быть проблема?
upd: некоторые письма не сохраняет, а некоторые сохраняет.
Похоже сохраняет только те, которые в html пришли...
С кодировкой что-то еще не ясное, не смог подобрать, что бы они отображались нормально.
P.S. OS - Ubuntu 10.10 RC
Отредактировано AbyssMoon (09-10-2010 10:22:26)
Отсутствует
У меня создается файл, но он пустой, занимает 1б.
В чем может быть проблема?
Только что нашел у себя в imap учетке одно такое. Помогла замена
на
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Огромное спасибо!
Те письма, которые не сохранялись, теперь сохраняются и в них текст отлично читается, но вот в некоторых письмах, что-то с кодировкой, не могу ничем их прочесть...
Судя по коду они сохраняются в utf8 как я понял, но даже через браузер текст нормально не отображается, я перебирал кодировки...
Отсутствует
AbyssMoon
Можно попробовать выставить preserveCharset и useOutCharset в false и закомментировать строку
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Переделал немного предыдущий код:
var pathToDirectory = "~/mymail"; var Cc = Components. classes; var Ci = Components. interfaces; var Cr = Components. results; function getDirectory () { var dir = Cc ["@mozilla.org/file/local;1"]. createInstance (Ci. nsILocalFile); dir. initWithPath (pathToDirectory); return dir; } function getText (uri) { var header = messenger. messageServiceFromURI (uri). messageURIToMsgHdr (uri); var charset = header. Charset || "utf-8"; var subject = header. mime2DecodedSubject; var filename = GenerateValidFilename (subject, ".html"); var messageService = messenger. messageServiceFromURI (uri); var file = dir. clone (); file. append (filename); if (file. exists ()) file. createUnique (Ci. nsIFile. NORMAL_FILE_TYPE, 0664); var ssl = { foStream: null, QueryInterface: function (iid) { if (iid. equals (Ci. nsISupports) || iid. equals (Ci. nsIStreamListener)) return this; throw Cr. NS_ERROR_NO_INTERFACE; }, onStartRequest: function (request, context) { this. foStream = Cc ["@mozilla.org/network/file-output-stream;1"]. createInstance (Ci. nsIFileOutputStream); var flags = 0x02 | 0x08 | 0x20; this. foStream. init (file, flags, 0664, 0); }, onStopRequest: function (request, context, status) { this. foStream. close (); }, onDataAvailable: function (request, context, inputStream, offset, count) { var sis = Cc ["@mozilla.org/scriptableinputstream;1"]. createInstance(Ci. nsIScriptableInputStream); sis. init (inputStream); sis. available (); while (sis. available ()) this. foStream. write (sis. read (count), count); } }; var chanURI = messageService. streamMessage (uri, null, {}, null, false, null); var ios = Cc ["@mozilla.org/network/io-service;1"]. getService (Ci. nsIIOService); var chan = ios. newChannelFromURI (chanURI); chan. contentType = "message/rfc822"; var streamConverter = Cc ["@mozilla.org/streamconv;1?from=message/rfc822&to=application/vnd.mozilla.xul+xml"]. createInstance (Ci. nsIStreamConverter); streamConverter. asyncConvertData ("message/rfc822", "application/vnd.mozilla.xul+xml", ssl, chan); chan. asyncOpen (streamConverter, null); } var dir = getDirectory (); if (!dir) return; var messageArray = gFolderDisplay.selectedMessageUris; for (var i = 0; i < messageArray. length; i++) getText (messageArray [i], dir);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Огромное спасибо, под себя еще немного вот так допили.
var pathToDirectory = "~/web"; // "/home/labirint/web var Cc = Components. classes; var Ci = Components. interfaces; var Cr = Components. results; function getDirectory () { var dir = Cc ["@mozilla.org/file/local;1"]. createInstance (Ci. nsILocalFile); dir. initWithPath (pathToDirectory); return dir; } function getText (uri) { var header = messenger. messageServiceFromURI (uri). messageURIToMsgHdr (uri); var charset = header. Charset || "utf-8"; var subject = header. mime2DecodedSubject; var filename = GenerateValidFilename (messenger. messageServiceFromURI (uri). messageURIToMsgHdr (uri). mime2DecodedAuthor + " - " + subject, ".html"); var messageService = messenger. messageServiceFromURI (uri); var file = dir. clone (); file. append (filename); if (file. exists ()) file. createUnique (Ci. nsIFile. NORMAL_FILE_TYPE, 0664); var ssl = { foStream: null, QueryInterface: function (iid) { if (iid. equals (Ci. nsISupports) || iid. equals (Ci. nsIStreamListener)) return this; throw Cr. NS_ERROR_NO_INTERFACE; }, onStartRequest: function (request, context) { this. foStream = Cc ["@mozilla.org/network/file-output-stream;1"]. createInstance (Ci. nsIFileOutputStream); var flags = 0x02 | 0x08 | 0x20; this. foStream. init (file, flags, 0664, 0); }, onStopRequest: function (request, context, status) { this. foStream. close (); }, onDataAvailable: function (request, context, inputStream, offset, count) { var sis = Cc ["@mozilla.org/scriptableinputstream;1"]. createInstance(Ci. nsIScriptableInputStream); sis. init (inputStream); sis. available (); while (sis. available ()) this. foStream. write (sis. read (count), count); } }; var chanURI = messageService. streamMessage (uri, null, {}, null, false, null); var ios = Cc ["@mozilla.org/network/io-service;1"]. getService (Ci. nsIIOService); var chan = ios. newChannelFromURI (chanURI); chan. contentType = "message/rfc822"; var streamConverter = Cc ["@mozilla.org/streamconv;1?from=message/rfc822&to=application/vnd.mozilla.xul+xml"]. createInstance (Ci. nsIStreamConverter); streamConverter. asyncConvertData ("message/rfc822", "application/vnd.mozilla.xul+xml", ssl, chan); chan. asyncOpen (streamConverter, null); } var dir = getDirectory (); if (!dir) return; var messageArray = gFolderDisplay.selectedMessageUris; for (var i = 0; i < messageArray. length; i++) getText (messageArray [i], dir);
Отредактировано AbyssMoon (09-10-2010 16:39:49)
Отсутствует
Господа! а можно сваять кнопочку для создания кликабельного списка дополнений ? А то InfoLister, Extension List Dumper и MR Tech Toolkit не хотят работать на 4.0*
Отредактировано Крошка Ру (10-10-2010 05:17:04)
Отсутствует
Подскажите, пожалуйста, код одной кнопки, который позволяет сделать автофокус в адресную строку при вводе на странице текста+при нажатии левой кнопки мыши очищает url bar+делает возможным вставлять из буфера обмена текст нажатием средней кнопки мыши (колеса)?
Отсутствует
Крошка Ру
var am = {}; Components. utils. import ("resource://gre/modules/AddonManager.jsm", am); am = am. AddonManager; function dumpObject (obj) { var s = ""; for (var i in obj) { try { if (typeof (obj [i]) == "function") s += "*** FUNCTION: " + i + "\n"; else s += i + ": " + obj [i] + "\n"; } catch (e) { s += "*** ERROR: " + i + "\n"; } } alert (s); } function gatherInfo (type, items) { var list = "", enabled = 0, disabled = 0; for (var i = 0; i < items. length; i++) { if (items [i]. type == type) { list += items [i]. name + " " + items [i]. version; if (items [i]. userDisabled || items [i]. appDisabled) { list += " [disabled]"; disabled++; } else enabled++; list += "\n"; } } return [enabled + disabled, enabled, disabled, list]; } function extensionsCallback (extensions) { var list = ""; var info = Components. classes ["@mozilla.org/xre/app-info;1"]. getService (Components. interfaces. nsIXULAppInfo); list += info. vendor + " " + info. name + " " + info. version + " (build " + info. appBuildID + ")\n"; list += "User Agent: " + navigator. userAgent + "\n\n"; // languages list += "*** Languages"; var locales = gatherInfo ("locale", extensions); list += " (enabled: " + locales [1] + ", disabled: " + locales [2] + "; all: " + locales [0] + ")\n" + locales [3] + "\n"; // extensions list += "*** Extensions"; var exts = gatherInfo ("extension", extensions); list += " (enabled: " + exts [1] + ", disabled: " + exts [2] + "; all: " + exts [0] + ")\n" + exts [3] + "\n"; // themes list += "*** Themes"; var themes = gatherInfo ("theme", extensions); list += " (" + themes [0] + ")\n" + themes [3] + "\n"; // plugins list += "*** Plugins"; var plugins = gatherInfo ("plugin", extensions); list += " (enabled: " + plugins [1] + ", disabled: " + plugins [2] + "; all: " + plugins [0] + ")\n" + plugins [3]; var oldIPI = XML. ignoreProcessingInstructions; var oldPP = XML. prettyPrinting; XML. ignoreProcessingInstructions = false; var dialog = <> <?xml-stylesheet href="chrome://global/skin/"?> <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml" id="cbbExtensionsLister" persist="width height screenX screenY" title="Extensions" width="640" height="480" buttons="accept,extra1" buttonlabelextra1="Copy…" onload="init()" ondialogextra1="copy()"> <script type="application/x-javascript"> <![CDATA[ function init () {} function copy () { var tb = document. getElementById ("addonslist"); window. arguments [0]. write (tb. value); tb. focus (); } ]]> </script> <textbox id="addonslist" flex="1" multiline="true" value={list}/> </dialog></>; dialog = "data:application/vnd.mozilla.xul+xml," + dialog. toXMLString (); XML. ignoreProcessingInstructions = oldIPI; window. openDialog (dialog, "", "chrome,dependent,minimizable,dialog=no", custombuttonsUtils. gClipboard); } am. getAllAddons (extensionsCallback);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Mr. Di
Подскажите, пожалуйста, код одной кнопки, который позволяет сделать автофокус в адресную строку при вводе на странице текста+при нажатии левой кнопки мыши очищает url bar+делает возможным вставлять из буфера обмена текст нажатием средней кнопки мыши (колеса)?
Код здесь: http://forum.mozilla-russia.org/viewtop … 36#p447636, для обработки средней кнопки к нему надо добавить
this.midclick = function (evt) { var urlbar = document. getElementById ("urlbar"); urlbar. value = custombuttonsUtils. gClipboard. read (); }
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton Спасибо ..... у меня кнопка не кликабельна но работает - после каждого перезапуска браузера самопроизвольно появляется окошко со списком расширений .... но подобный список можно скопировать и открыв about:support , а хотелось бы чтобы файл сохранялся в html - формате
Отредактировано Крошка Ру (10-10-2010 20:30:05)
Отсутствует
после каждого перезапуска браузера самопроизвольно появляется окошко со списком расширений
Перемести код из раздела "Инициализация" в раздел "Код".
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Anton вот жесть .... и как я только вкладки перепутать умудрился смотрел же на КОД .... вот теперь совсем другое дело..... а выбор форматов для сохранения добавить реально?
Отсутствует
а выбор форматов для сохранения добавить реально?
Я за это браться не буду. : )
Вот код для сохранения в html:
var am = {}; Components. utils. import ("resource://gre/modules/AddonManager.jsm", am); am = am. AddonManager; function gatherInfo (type, items) { var list = "", enabled = 0, disabled = 0; for (var i = 0; i < items. length; i++) { if (items [i]. type == type) { list += items [i]. name + " " + items [i]. version; if (items [i]. userDisabled || items [i]. appDisabled) { list += " [disabled]"; disabled++; } else enabled++; list += "\n"; } } return [enabled + disabled, enabled, disabled, list]; } function extensionsCallback (extensions) { var oldIPI = XML. ignoreProcessingInstructions; XML. ignoreProcessingInstructions = false; var list = <> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> </head> <body/> </html> </>; var info = Components. classes ["@mozilla.org/xre/app-info;1"]. getService (Components. interfaces. nsIXULAppInfo); list. body += <pre>{info. vendor + " " + info. name + " " + info. version + " (build " + info. appBuildID + ")\n"}</pre>; list. body += <pre>{"User Agent: " + navigator. userAgent + "\n\n"}</pre>; // languages var locales = gatherInfo ("locale", extensions); list. body += <pre>{"*** Languages (enabled: " + locales [1] + ", disabled: " + locales [2] + "; all: " + locales [0] + ")\n" + locales [3] + "\n"}</pre>; // extensions var exts = gatherInfo ("extension", extensions); list. body += <pre>{"*** Extensions (enabled: " + exts [1] + ", disabled: " + exts [2] + "; all: " + exts [0] + ")\n" + exts [3] + "\n"}</pre>; // themes var themes = gatherInfo ("theme", extensions); list. body += <pre>{"*** Themes (" + themes [0] + ")\n" + themes [3] + "\n"}</pre>; // plugins var plugins = gatherInfo ("plugin", extensions); list. body += <pre>{"*** Plugins (enabled: " + plugins [1] + ", disabled: " + plugins [2] + "; all: " + plugins [0] + ")\n" + plugins [3]}</pre>; var suc = Components. classes ["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance (Components. interfaces. nsIScriptableUnicodeConverter); suc. charset = "utf-8"; list = suc. ConvertFromUnicode (list); var dialog = <> <?xml-stylesheet href="chrome://global/skin/"?> <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:html="http://www.w3.org/1999/xhtml" id="cbbExtensionsLister" persist="width height screenX screenY" title="Extensions" width="640" height="480" buttons="accept,extra1" buttonlabelextra1="Save…" onload="init()" ondialogextra1="save()"> <script type="application/x-javascript"> <![CDATA[ function init () {} function save () { var fp = Components. classes ["@mozilla.org/filepicker;1"]. createInstance (Components. interfaces. nsIFilePicker); fp. init (window, "Select…", fp. modeSave); fp. appendFilters (fp. filterHTML); var res = fp. show (); if (res == fp. returnOK) window. arguments [0] (fp. fileURL. path, window. arguments [1]); } ]]> </script> <html:iframe flex="1" id="addonslist" src={"data:text/html;base64," + btoa (list)}/> </dialog></>; dialog = "data:application/vnd.mozilla.xul+xml," + dialog. toXMLString (); XML. ignoreProcessingInstructions = oldIPI; window. openDialog (dialog, "", "chrome,dependent,minimizable,dialog=no", custombuttonsUtils. writeFile, list); } am. getAllAddons (extensionsCallback);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Вот код для сохранения в html:
Anton попробую добавить
Отсутствует
Mr. Di
Подскажите, пожалуйста, код одной кнопки, который позволяет сделать автофокус в адресную строку при вводе на странице текста+при нажатии левой кнопки мыши очищает url bar+делает возможным вставлять из буфера обмена текст нажатием средней кнопки мыши (колеса)?
Код здесь: http://forum.mozilla-russia.org/viewtop … 36#p447636, для обработки средней кнопки к нему надо добавить
Код:this.midclick = function (evt)
{
var urlbar = document. getElementById ("urlbar");
urlbar. value = custombuttonsUtils. gClipboard. read ();
}
Ничего не работает, кроме автофокуса в адресную строку, подумал мож расширение какое-то не дает, поставил чистую Лису, сделал кнопку и вставил код, который Вы написали, но так и ничего не заработало кроме автофокуса.
Вот код, что у меня в инициализации, не меньше не больше, буква в букву:
var cb=custombuttons,self=this;
function l(str) {
self.properties = {
en_US:{
Label: 'Clear Address Bar',
},
};
var str = cb.getLocalString(self, str);
return str
}
this.leftclick = function(evt) {
var urlbar = document.getElementById('urlbar');
if (urlbar) {
urlbar.value = "";
urlbar.focus();
}
return
}
this.label = l("Label");
this.setAttribute( 'onclick', 'gQuot( event, this )' );
this.setAttribute( 'ondblclick', 'custombuttons.gQuot.mHandler( event, this )' );
this.setAttribute('onmouseover', 'custombuttons.ButtonBrt(event);' );
this.setAttribute('onmouseout', 'custombuttons.ButtonDim(event);' );
document.getElementById("appcontent").addEventListener("keypress", func, true);
function func(e) {
if (e.target.tagName != 'TEXTAREA' &&
e.target.tagName != 'INPUT' &&
e.which != 32 &&
e.which != 8 &&
e.which != 0 &&
!e.ctrlKey &&
!e.altKey)
{
document.getElementById('urlbar').focus();
document.getElementById('urlbar').value = String.fromCharCode(e.which);
}
}
this.midclick = function (evt)
{
var urlbar = document. getElementById ("urlbar");
urlbar. value = custombuttonsUtils. gClipboard. read ();
}
Посмотрите, пожалуйста, может что-то с кодом, что может быть не так, может кнопку нужно обозвать или что-то ещё, но если на голой лисе не срабатывает, значит что-то не то с кодом или я совсем деревянный?
ИЗВИНИТЕ, все работает, только, скорее всего я не правильно выразился. Все работает при нажатии ЛКМ на самой кнопке и вставляется в адресную строку при нажатии средней кнопкой мыши на самой кнопке. А я имел ввиду, что сотрется адресная строка при нажатии ЛКМ на любом месте интернет страницы, кроме текстового поля, а по нажатию средней кнопки мыши колеса произойдет вставка в любом текстовом поле браузера. Антон, кудесник, Вы сможете такое написать?
Отредактировано Mr. Di (10-10-2010 23:10:03)
Отсутствует