Если послать xmlhttprequest то по полученным заголовкам можно узнать кое-что нужное - тип файла, размер и т. д.
А есть подобный способ узнать допустим размеры картинки в пикселях, не загружая саму картинку?
Ну какие мнения будут?
И это, вопрос: а куда делась тема со сниппетами?
Отсутствует
Ну какие мнения будут?
И это, вопрос: а куда делась тема со сниппетами?
Автор okkamas_knife по не понятным причинам убрал тему со сниппетами. Жаль.
А насчёт картинки в пикселях я не знаю. Кстати XMLHTTPRequest: описание, применение, частые проблемы | XmlHttpRequest.ru
Отсутствует
Не подскажете как в "Attributes Inspector"
повесить на клик колесика копирование всплывающей подсказки?
Сейчас на ней вызов DOM Inspector
Вот тут
clickHandler: function(e, top) { if(!this.canInspect(e)) return; this._checkPreventDefault(e); this.stopEvent(e); var nodes = this._nodes; var node = nodes.length ? nodes[0] : e.originalTarget; this.inspect(node, top, e.shiftKey); },
заменить
var nodes = this._nodes; var node = nodes.length ? nodes[0] : e.originalTarget; this.inspect(node, top, e.shiftKey);
на
P.S. И на будущее лучше в специальной теме спрашивать.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
И на будущее лучше в специальной теме спрашивать.
Спасибо.
Извиняюсь. Затупил что-то.
Отредактировано Ultima2m (01-08-2015 18:34:52)
Отсутствует
Подскажите, я кнопки в SeaMonkey скопировал и некоторые из них вообще не работают, а какие-то - дублируются в меню? Это нормально?
А вообще, чтоб обойтись без SeaMondey мне нужно, чтоб ссылки из thunderbirdportable открывались в firefoxportable, но thunderbirdportable открывает ссылки в браузере назначенном системой по умолчания.
Отсутствует
дублируются
Отсутствует
fokanik пишетдублируются
Помогло, спасибо!
Отсутствует
fokanik, Open With и в настройках добавьте путь к вашему FirefoxPortable.exe
Отсутствует
А насчёт картинки в пикселях я не знаю. Кстати XMLHTTPRequest: описание, применение, частые проблемы | XmlHttpRequest.ru
А я там побывал с самого начала
Потому я и спрашивал как запросить размеры картинки /чтоб без загрузки/, что через XMLHTTPRequest этого не сделаешь.
Отсутствует
Нужна кнопка для вставки смайлов типа Его код <kolobki type=":Колобки:Улыбаюсь:">.
Пробовал самостоятельно подставлять в кнопки вставки спец.символов но или я не то делал или нужно какое то волшебное слово.
Если кого не затруднит и это возможно, прошу сделать образец кода а заполнить другими смайлами, думаю, смогу сам...желательно с пояснениями в коде...
Пытался использовать коды тут и далее по ссылкам.
Отредактировано oleg.sgh (02-08-2015 10:40:16)
Отсутствует
oleg.sgh
Смайлы в конт. меню
Пытался и в эту подставить свое но после своих замен кнопка становилась мертвая...
Отсутствует
Пытался и в эту подставить свое но после своих замен кнопка становилась мертвая...
Там внимательно нужно, как и во всех кнопках , хехе
я уж добавил туда своих смайлов несколько штук - всё работает.
Там в трёх местах надобно прописывать:
1. это вначале в base64. Эта иконка будет отображаться в конт. меню.
2. название смайла. Это пункт кот. берет "имя" для показа в конт. меню и выполняет команду при клике(см. пункт 3). После последнего пункта не должно быть запятой.
3. Тут копируем тело ф-ции как и у других, меняем только путь к смайлу в сети т.е. картинко должна быть в интронэтах ибо оттуда она будет взята как BBcode.
function command16(){ var text = "[img]http://yahooeu.ru/engine/data/emoticons/smoke1.gif[/img]"; var cmd = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(cmd); if(controller && controller.isCommandEnabled(cmd)) { controller = controller.QueryInterface(Components.interfaces.nsICommandController); var params = Components.classes["@mozilla.org/embedcomp/command-params;1"] .createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", text); controller.doCommandWithParams(cmd, params); } }
Отредактировано jars (02-08-2015 11:18:06)
Отсутствует
jars
Попробую еще раз но
У смайла нет адреса а только код. Загружать смайл в альбом и привязать к АК майла кнопку...не айс. Тег изображения что в кнопке не работает на майл ру. Поэтому нужно для кода смайла вида <kolobki type=":Колобки:Улыбаюсь:">
У меня их коды есть в дополнении Clippings но там уже и так много чего. Просто неудобен выбор, меню - Clippings - папка - смайл поэтому и обратился. Может проще сделать образец, именно, для этих смайлов.
пс. получилось заменить на загруженное изображение в майловском формате но - тег изображения не работает в личке. вдобавок, опять контекстное меню и дерево плюс привязка к АК. Спасибо, но это вариант не подходит
Отредактировано oleg.sgh (02-08-2015 11:44:55)
Отсутствует
fokanik, Open With и в настройках добавьте путь к вашему FirefoxPortable.exe
А можно как-то избавиться от проблемы при передачи еще одной ссылки программе:
Пробовал открывать ссылку с ключем firefoxportable.exe -new-tab -no-remote - открыть в новой вкаладке, не помогло.
Отсутствует
oleg.sgh
ну хз. универсального всё одно нет, да и не надо оно , универсальное... если где нету BBcode там обычно есть свои смайлы, я на этихваших мылору не шаряюсь, не знаю как там
Но ежели нужно именно вставлять куски текста, то можно переделать кнопку Insert Special symbol (очистить то шо там и записать свои нужные куски текста).
Правда это кнопка на панели, а не в конт.меню. Добавил в конце твой пример( <kolobki type=":Колобки:Улыбаюсь:"> ), вставляет норм.
URl
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EInsert%20special%20symbol%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAACXBIWXMAAA7DAAAOwwHHb6hkAAACmElEQVQokU3MS0hUYRyG8ff/nTOXMzNnLkdttDJvo46NZZrONJNZSm6KihZFtY3aBK2jRYs2EVQUEa5qkUKhERZUC1MwI+iCZZEZgtNcUkEHL+Pc53xfiyB69r+HAICIIIQAACiKFXWNTQh2ddfkdd1tNinR9xNji7Mz37lFsSCdTiG1kfxnCAAkSYJvR4utPXigwburfU+dp76zarM7SLlUWVYXsfV0fj6dSS1YFWXudyy69mXyw8yzoUcvopHw38HRYyeVS1euPTcopoMGiYTdaSPEY5h/OQwhG+E5dQZSiYZoJCZiC8vkKq1IvBp+HLx+9fKsDADbfa1+SFL3509z+PguzM9f6CHnpnJsOXeR3C6rmPsVx9unI1hKL4pHk33i9L6zJaFQ716t5OYsa9nlR1t7qDuVyUrNLdv0YFeD9G0qzopcsJXVJKXSObaRybPE+jpr3NIkaZrGppcmYVcdPW3+IFgg0KnY7PYuIgazYiLVoeDrVASyzMAYQeccZrMRDrsTa4UEVNUOX8VOFKTsHq1kk4ft7ez25vVis9FsBBHRYP8EksksNpJ5EAiFIgcRg2KyYikTR32pl3VVHwEDqh1O1yEG0GGraiuzWkz8ft8rXlnj4vt7fWI+nhCyUUKuUAAxBqNBxs/5KbHV2sAVm4G7rBaDRTYE2PLKSj6f2UijoDO32ykdPxFijAT9mI5RschFocC5ECTyeo5XOj3oaGxna6uL+r3bNwaGBgdukaaVUmWVt6KqptbfEQj4PQ3egKo6G1OpbHlt3WbJoarIFXWEwxGYuJ4en3g91v/wwd1YJDxKRDrhvxiT4S6vlFt3B6oDoU6fppWF7HZbyGg0eBJLi9NPHvffGX8zOiI4zzDGSAhBfwCGWwpS1pS7aQAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%20Indomito%20%u0438%20Difabor%20-%20%u0432%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2027.05.2014%0A//%20%u0417%u0430%20%u043E%u0441%u043D%u043E%u0432%u0443%20%u0432%u0437%u044F%u0442%20%u043A%u043E%u0434%20-%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28%20Firefox%20%29%20%u043E%u0442%2011.05.2013%20%u0430%u0432%u0442%u043E%u0440%20bunda1%0A%0Avar%20delay%20%3D%20600%2C%20array%20%3D%20%5B%5D%2C%20symbList%2C%20myID%20%3D%20_id%2C%20symbName%20%3D%20myID%20+%20%22.symbols%22%2Cmynum%3D0%3B%0Avar%20symbListOrig%20%3D%20%22%A4%2C%A6%2C%A7%2C@%2C%A9%2C%AB%2C%BB%2C%AC%2C%AE%2C%B0%2C%B1%2C%B5%2C%B6%2C%u2014%2C%u2018%2C%u2019%2C%u201C%2C%u201D%2C%u2022%2C%u2030%2C%u2039%2C%u203A%2C%u2122%22%3B%20%0A%0Athis.onmousedown%20%3D%20function%28event%29%20%7Bthis._mouseDownTime%20%3D%20Date.now%28%29%3B%7D%3B%0A%20%20%20%20//if%28e.button%20%21%3D%200%29%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20//if%28event.button%20%3D%3D%202%29%20%20this._mouseDownTime%20%3D%20Date.now%28%29%3B%0A//%7D%3B%0A%0Athis.tooltipText%20%3D%20%0A%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043F%u0435%u0446%u0438%u0430%u043B%u044C%u043D%u044B%u0439%20%u0441%u0438%u043C%u0432%u043E%u043B%5Cn%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%5Cn%22%20+%0A%22Left%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%20%5Cn%22%20+%0A%22Left%20Long%20%20%20%20%20%u2014%20%20%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Middle%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Right%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22%20+%0A%22Right%20Long%20%20%u2014%20%20%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%20%22%3B%0A%0A/*%0Athis.tooltipText%20%3D%20%0A%22Left%20Short%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%5Cn%22%20+%20%0A%22Left%20Long%20Or%20Left+Shift%20%20%20%20%20%20%20%3D%3E%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Middle%20Or%20Left+Ctrl%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22%28Middle%20Or%20Left+Ctrl%29+Shift%20%3D%3E%20%u041C%u0435%u0440%u044F%u0442%u044C%20%u0434%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%20%u043A%u043B%u0438%u043A%u0430%5Cn%22%20+%0A%22Right%20Short%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22%20+%20%0A%22Right%20Long%20Or%20Right+Shift%20%3D%3E%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%20%22%3B%0A*/%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20symbList%20%3D%20%28custombuttons.isPref%28symbName%29%29%3F%20unescape%28custombuttons.getPrefs%28symbName%29%29%3A%20symbListOrig%3B%0A%20%20%20%20if%28event.button%20%3D%3D%200%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%7B%0A%20%20%20%20%20%20array%20%3D%20symbList.split%28%22%2C%22%29%3B%0A%20%20%20%20%20%20var%20node%20%3D%20document.getElementById%28this.id%20+%20%22-menuPopup%22%29%3B%0A%20%20%20%20%20%20if%20%28%20node%20%26%26%20node.parentNode%20%29%20node.parentNode.removeChild%28node%29%3B%20//%20%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%0A%0A%20%20%20%20%20%20var%20menuPopup%20%3D%20document.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20%20%20menuPopup.id%20%3D%20this.id%20+%20%22-menuPopup%22%3B%0A%0A%20%20%20%20%20%20array.forEach%28function%28symbol%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20var%20menuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2C%20symbol%20%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.style.fontSize%20%3D%20%2216px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A%20%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2C%20insertText%2C%20false%29%3B%20%0A%20%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%7D%20%20%0A%20%20%20%20else%20if%28event.button%20%3D%3D%200%20%26%26%20%28%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%3D%20delay%29%7C%7C%28%21event.ctrlKey%20%26%26%20event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%29%20%7B%0A%20%20%20%20%20%20var%20a%3Dprompt%28%22%u0420%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u0441%u0442%u0440%u043E%u043A%u0443%2C%20%u0432%u0441%u0442%u0430%u0432%u043B%u044F%u044F%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%u043B%u0438%20%u0433%u0440%u0443%u043F%u043F%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u0437%u0430%u043F%u044F%u0442%u0443%u044E%3A%22%2CsymbList%29%3B%0A%20%20%20%20%20%20if%20%28a%29%20custombuttons.setPrefs%28symbName%2Cescape%28a%29%29%3B%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28%28event.button%20%3D%3D%201%20%7C%7C%20%28event.button%20%3D%3D%200%20%26%26%20event.ctrlKey%20%29%29%20%26%26%20%28%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20%0A%20%20%20%20%20%20%20%20//mbMouse%28%29%3B%0A%20%20%20%20%20%20%20%20custombuttons.clearPrefs%28symbName%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28%28event.button%20%3D%3D%201%20%7C%7C%20%28event.button%20%3D%3D%200%20%26%26%20event.ctrlKey%20%29%29%20%26%26%20%28event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%20%7B%0A%20%20%20%20%20alert%28%22%u0414%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%3A%20%22+%28Date.now%28%29%20-%20this._mouseDownTime%29+%20%22%u043C%u0441%20%22%20+%20mynum%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20//if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20startProcess%28%22C%3A%5C%5CWin%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%20%20%20%20startProcess%28%22C%3A%5C%5CWin%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0Afunction%20startProcess%28path%2C%20args%29%20%7B%0A%20%20%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20if%28file.exists%28%29%29%20%7B%0A%20%20%20%20%20%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20%20%20%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%20%20%20%20%20%20%7D%20else%20custombuttons.%20alertBox%20%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2C%20path%29%3B%20%0A%7D%3B%0A%0A//this.type%20%3D%20%22menu%22%3B%20%0A%0A//%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20............%0Afunction%20insertText%28%29%20%7B%20%0A%20%20%20var%20text%20%3D%20this.label%3B%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20if%20%28%20controller%20%26%26%20controller.isCommandEnabled%28cmd%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
/*Initialization Code*/ // Indomito и Difabor - версия от 27.05.2014 // За основу взят код - Вставка символа в текстовое поле( Firefox ) от 11.05.2013 автор bunda1 var delay = 600, array = [], symbList, myID = _id, symbName = myID + ".symbols",mynum=0; var symbListOrig = "¤,¦,§,@,©,«,»,¬,®,°,±,µ,¶,—,‘,’,“,”,•,‰,‹,›,™"; this.onmousedown = function(event) {this._mouseDownTime = Date.now();}; //if(e.button != 0) return; //if(event.button == 2) this._mouseDownTime = Date.now(); //}; this.tooltipText = " Вставить специальный символ\n—————————————————————————\n" + "Left — Вставка символа из списка \n" + "Left Long — Редактирование списка символов\n" + "Middle — Возврат к исходному списку символов\n" + "Right — Запуск таблицы символов Windows\n" + "Right Long — Стандартное Меню Кнопки "; /* this.tooltipText = "Left Short => Вставка символа из списка\n" + "Left Long Or Left+Shift => Редактирование списка символов\n" + "Middle Or Left+Ctrl => Возврат к исходному списку символов\n" + "(Middle Or Left+Ctrl)+Shift => Мерять длительность клика\n" + "Right Short => Запуск таблицы символов Windows\n" + "Right Long Or Right+Shift => Стандартное Меню Кнопки "; */ this.onclick = function(event) { symbList = (custombuttons.isPref(symbName))? unescape(custombuttons.getPrefs(symbName)): symbListOrig; if(event.button == 0 && ((Date.now() - this._mouseDownTime) < delay) && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey){ array = symbList.split(","); var node = document.getElementById(this.id + "-menuPopup"); if ( node && node.parentNode ) node.parentNode.removeChild(node); // блокировать дублирование меню var menuPopup = document.getElementById("mainPopupSet").appendChild(document.createElement("menupopup")); menuPopup.id = this.id + "-menuPopup"; array.forEach(function(symbol) { var menuItem = document.createElement("menuitem"); menuItem.setAttribute("label", symbol ); menuItem.style.fontSize = "16px"; // размер шрифта menuItem.addEventListener("command", insertText, false); menuPopup.appendChild(menuItem); }); menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); } else if(event.button == 0 && (((Date.now() - this._mouseDownTime) >= delay)||(!event.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey))) { var a=prompt("Рредактировать эту строку, вставляя символы или группы символов через запятую:",symbList); if (a) custombuttons.setPrefs(symbName,escape(a)); } else if ((event.button == 1 || (event.button == 0 && event.ctrlKey )) && (!event.shiftKey && !event.altKey && !event.metaKey)) { // Действие при клике СКМ //mbMouse(); custombuttons.clearPrefs(symbName); } else if ((event.button == 1 || (event.button == 0 && event.ctrlKey )) && (event.shiftKey && !event.altKey && !event.metaKey)) { alert("Длительность: "+(Date.now() - this._mouseDownTime)+ "мс " + mynum); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey && ((Date.now() - this._mouseDownTime) < delay)) { // Действие при клике ПКМ без модификаторов //if ((Date.now() - this._mouseDownTime) < delay) startProcess("C:\\Win\\system32\\charmap.exe",[]); startProcess("C:\\Win\\system32\\charmap.exe",[]); } }; this.oncontextmenu = function(event) { if(event.button == 2 && ((Date.now() - this._mouseDownTime) < delay) && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; function startProcess(path, args) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); if(file.exists()) { var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); process.run(false, args, args.length); } else custombuttons. alertBox ("Файл не найден", path); }; //this.type = "menu"; // Вставить текст в текстовое поле ............ function insertText() { var text = this.label; var cmd = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(cmd); if ( controller && controller.isCommandEnabled(cmd) ) { var controller = controller.QueryInterface(Components.interfaces.nsICommandController); var params = Components.classes["@mozilla.org/embedcomp/command-params;1"].createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", text); controller.doCommandWithParams(cmd, params); } };
Отсутствует
jars
Примерно то что надо и именно кнопкой. Только что бы в меню кнопки были сами смайлы а не коды их. Т.е. нажал на кнопку - линейка меню из смайлов, нажал на смайл - добавился его код.
Почистить, пусть и коряво, может и получится но вот смайлы в меню кнопки мне не вставить. Если смайлы вообще затруднительно вставить то хотя бы нормальное имя.
Отсутствует
oleg.sgh
ну хз. пришло в бошку только переделать ту, первую кнопку со смайлами что предлагал вначале Смайлы в конт. меню
Только заместо BBcode в функции ставить твои куски текста. например тот же кусок:
//------------------------------------------------------------------------- function command16(){ var text = "<kolobki type=\":Колобки:Улыбаюсь:\">"; var cmd = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(cmd); if(controller && controller.isCommandEnabled(cmd)) { controller = controller.QueryInterface(Components.interfaces.nsICommandController); var params = Components.classes["@mozilla.org/embedcomp/command-params;1"] .createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", text); controller.doCommandWithParams(cmd, params); } } //-------------------------------------------------------------------------
т.е. все остается как и есть, иконки в base64 прописываешь(они будут показываться в меню), название тоже. А в функции заместо [img]путь_до_иконки_в_интронэте[/img] вписуешь свой текст. Только нужно кавычки экранировать обратной чертой(слэш) \
зы. кнопка требует перезапуска бравзера после изменений.
Отсутствует
jars Спаисбо, оставлю как запасной вариант. В конт. меню у меня уже реализована вставка кодов хотя там вместо самого смайла его название. Кнопкой на панели будет удобнее.
пс. пока воюю с кнопкой...кнопка побеждает....и не могу понять где кнопка сохраняет коды смайлов которые сам добавил.
Отредактировано oleg.sgh (02-08-2015 20:18:07)
Отсутствует
fokanik
(function() { if (document.getElementById("cb-separator-1;")) return; var contextMenu = document.getElementById("contentAreaContextMenu"); var refChild = document.getElementById("context-paste"); //id пункта, после которого вставить сепаратор var menuseparator = document.createElement("menuseparator"); menuseparator.id = "cb-separator-1;" //id сепаратора contextMenu.insertBefore(menuseparator, refChild.nextSibling); // удалите листенер, если хотите, чтобы сепаратор показывался всегда, а не только если в контекстном меню виден родительский пункт addEventListener("popupshowing", function() { var hidden = refChild.getAttribute("hidden") == "true"; menuseparator.setAttribute("hidden", hidden.toString()); }, false, contextMenu); })();
Отсутствует