fil
Может не правильно конвертиш:
// Функция отдает текст перекодированный в UTF-8 function getConvertedText( text ) { var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"] .createInstance(Components.interfaces.nsIScriptableUnicodeConverter); converter.charset = "utf-8"; return converter.ConvertFromUnicode( text ); };
Отсутствует
bunda1
В процессе использования Сохранить ярлык страницы на ... появилась просьба, а можно в название ярлыка добавить название сайта в начале названия, при большом количестве упростило бы поиск нужного по имени, потому как лучше запоминается с какого сайта чем название статьи. Кнопку наверное не стоит трогать, чисто для себя, что, где в коде изменить. Да и с группировкой по сайтам гораздо удобнее, чем они разбросаны в разных местах.
Отредактировано villa7 (10-12-2012 19:43:03)
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
fil
Вы бы хоть коды (charCodeAt) букв до и после привели.
И пробовали что-нибудь такое http://stream.zerolab.org/post/1262331659/windows-1251-to-unicode-converter-in-javascript ?
Отредактировано Lex1 (10-12-2012 20:36:11)
Отсутствует
villa7
А эсли ты захочеш сохранить ярлики на разные топики в одном сайте, скажем ярлик на Custom Buttons | Форум Mozilla Россия и Готовые кнопки для Custom Buttons | Форум Mozilla Россия ?
Отсутствует
А эсли ты захочеш сохранить ярлики на разные топики в одном сайте, скажем ярлик на Custom Buttons | Форум Mozilla Россия и Готовые кнопки для Custom Buttons | Форум Mozilla Россия
bunda1, будет видно первые слова во второй строчке названия "Готовые кнопки .." или "Custom Buttons.." в любом случае
а если сначала идёт длинное_иностранное_название_страницы, которое может занимать почти две строчки и ярлык малознакомого сайта(или не сохранилась сама картинка иконки), то приходиться наводить курсор, чтобы узнать сайт
Отсутствует
LongLogin
Смотря что называть названием сайта.
Добавлено 10-12-2012 21:46:57
Названия "Готовые кнопки .." или "Custom Buttons.." это темы или топики, так
Отредактировано bunda1 (10-12-2012 21:46:57)
Отсутствует
Подскажите, как это написать короче, иначе пойду и напьюсь.
var autoFind = ( event =='input' || event =='[object UIEvent]' || event =='[object DragEvent]' || event =='[object MouseEvent]') ? false: true;
Вот так не работает:
Отсутствует
LongLogin
Смотря что называть названием сайта.
я имел ввиду адрес, он незаметен, если длинное название страницы, а иконки сайтов не всегда скачиваются
Отсутствует
LongLogin
Дай пример адреса где не скачивается иконка.
Кнопка сохраняет заголовок страницы как название ярлыка а не адрес.
Установи Firefox как браузер по умолчанию для ярлыков.
Отсутствует
Дай пример адреса где не скачивается иконка.
Установи Firefox как браузер по умолчанию для ярлыков.
где это? именно для ярлыков?
Отредактировано LongLogin (10-12-2012 23:48:15)
Отсутствует
LongLogin
Если у тебя портативный FF используй FF-SetDefault - Поиск в Google
У YouTube и Userscripts.org иконка сайта в .png формате который как ярлик нельзя сохранить, разве только в кнопке прописать специальные иконки для этих сайтов.
Отсутствует
У YouTube и Userscripts.org иконка сайта в .png формате который как ярлик нельзя сохранить, разве только в кнопке прописать специальные иконки для этих сайтов.
вот видишь
ну во общем, я лишь подтвердил текст villa7 - потому как лучше запоминается с какого сайта чем название статьи©
и я ж говорю, есть ярлыки без иконки и без названия сайта, так как оно не помещается ибо название страницы составляет 80 знаков
Diamond in the Rough - Syl Johnson : Songs, Reviews, Credits, Awards :
поэтому если бы название сайта было в начале, то такого бы не было
Отредактировано LongLogin (11-12-2012 00:16:22)
Отсутствует
а почему тогда кнопка создающая кнопку-закладку на сайт нормально подхватывает ютубовскую иконку?
может стоит взять механизм оттуда?
Уже смотрел, не помогло. Даже Internet Explorer не сохраняет ярлыки с иконками у которых иконка сайта в .png.
Отредактировано bunda1 (11-12-2012 02:08:46)
Отсутствует
bunda1
Про кнопку BB: Color Menu
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%3EBB%3A%20Color%20Menu%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADU0lEQVR4Xk3OW0ybBRyH4fc7lLZQyqGwclqLG5hFbvCAxpvFEBPkwkkWFo3ZlW43CxckapZ44Y0XvXAbFwaSiWJGoiFzHjKzicJ0w4XJQZfpaORQDqVdO6At9GP03L9NRtQ3efK7/SmXLD+RR4jqxUS1A+xZnaURq/2VrFM5ul1Mc4kbKppYdDQyUV7PqLUSw1wFajmIAir/pgB5t0mX86XFuYsq9CQTdERidGzE6InscTEP53UVt/BfqoJGARnZa6su08cP1xafdtVqFTXVUFsDNjukNVgyqJiMcjquMm7TacsLiICakgjxXMhVby8eaXM1NjXWFeGqU3C7wH0QGhvhiUPQ4IJMKfycpilaxEi5CZfFBHjUD2wD1o8Hg8/GJdQlcv+UyO2zIlc9Ip+cEzn3qYjnmsjZKZFT8yIdD0W6EjkZkezgFUna1KSEO5+sqDxR5zBRZc/Q4ICDNeCqL3CD2wX1BTUN4KgTDlQniFk28RI5AXudXLC83b/81GWR1+ZFzgREPHFJDWclOiYyPyNyd1XkRlxkOJMRj0TljCxLh8zKyYIhWenns7KTo8ZzQyLdP4r0Tor0eUW+CYn8kZCIb1du/HZXJhOb8p2EpE/+lF6ZkC75Vjrlsnwk06NqTrbIyDoQ2OeH/CqoAfL4mZu+hX/8FsbGPVSCwDoKQdKFfcQGaiQZ8AV3vZBdg/QKJHyPN71KlTNFy9NOaq1OlOkt4lteUvhIFpQQQ8PwqUbm4c2F2P0dHi3AoyXIBkAJgVZQeNL6vMIDZZbm8iPUzdhRtsNk8WMhthPFf1PVxPhhLrr8VXD7b9A3920AQcitYikKc+SlPX5Pf02r4xkq+ysoGjMoIzMcz65f13U9tZsR+fD7sK/9zRbrIbtZAS0N7IKYyAMmNY27Pcn1oS/4/MIVLC0KL4Rf9B22NSVVNEE34V9PGG986Z1bCkaXQQ2DHgQtgMpjOg/Qjk7R8lZZ3vfrGtf6Ro/fGZuqUdnPrDMTNOIvX7rjHbx6+15sYWme7cgKqZSfaGyNgH8pZpj/Gmg/3tr5bs/7A73v9Xq6X+8O6fwvk8ZaMpt9Z3ZxY2wxuXPUETQ3mxt0wuQW4yW5iV1natShmIxjrx77xVZdlEmn0/wDi3q+iH+UAK0AAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bconst%20allowSelection%20%3D%20true%3B%0Aconst%20hideDropmarker%20%3D%20true%3B%0Avar%20colors%20%3D%20%5B%0A%0A%09%22%23000000%2CBlack%22%2C%0A%09%22%23555555%2CGray%22%2C%0A%09%22%23000066%2CD-Blue%22%2C%0A%09%22%233366ff%2CM-Blue%22%2C%0A%09%22%2333ccff%2CL-Blue%22%2C%0A%09%22%23ff0000%2CRed%22%2C%0A%09%22%23006600%2CD-Green%22%2C%0A%09%22%2333cc00%2CM-Green%22%2C%0A%09%22%2399FF99%2CL-Green%22%2C%0A%09%22%23ffff00%2CYellow%22%2C%0A%09%22%23663300%2CBrown%22%2C%0A%09%22%23ff9900%2COrange%22%2C%0A%09%22%23ffcc00%2CPink%22%2C%0A%09%22%23ffffff%2CWhite%22%2C%0A%09%0A%09%22separator%22%2C%0A%09%0A%09%22%23ac5ef3%2Csome%201%22%2C%0A%09%22%23018776%2Csome%202%22%2C%0A%09%22%23e30077%2Csome%203%22%0A%0A%5D%3B%0Avar%20button%20%3D%20this%3B%0Avar%20cssStr%20%3D%20%22%22%3B%0Aconst%20icon_bgc%20%3D%20%22%20%3E%20.menu-iconic-left%20%3E%20.menu-iconic-icon%20%7B%20background-color%3A%20%22%3B%0A%0Avar%20menupopup%20%3D%20document.createElement%28%22menupopup%22%29%3B%0Acolors.forEach%28function%28str%29%20%7B%0A%0A%09if%20%28str%20%3D%3D%20%22separator%22%29%20%7B%0A%09%09menupopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0A%09%09return%3B%0A%09%7D%0A%09var%20tmp%20%3D%20str.split%28%22%2C%22%29%3B%0A%09var%20color%20%3D%20tmp%5B0%5D%3B%0A%09var%20label%20%3D%20tmp%5B1%5D%3B%0A%09var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%09menuitem.className%20%3D%20%22menuitem-iconic%22%3B%0A%09menuitem.setAttribute%28%22label%22%2C%20label%29%3B%0A%09menuitem.setAttribute%28%22id%22%2C%20button.id%20+%20%22-color-%22%20+%20color.replace%28%22%23%22%2C%20%22%22%29%29%3B%0A%09menuitem.setAttribute%28%22oncommand%22%2C%20%27this.parentNode.parentNode.bb%28%22%27%20+%20color%20+%20%27%22%29%3B%27%29%3B%0A%09menupopup.appendChild%28menuitem%29%3B%0A%09%0A%09cssStr%20+%3D%20%22%23%22%20+%20menuitem.id%20+%20icon_bgc%20+%20color%20+%20%22%20%21important%3B%20%7D%5Cn%22%0A%0A%7D%29%3B%0Aif%20%28hideDropmarker%29%20cssStr%20+%3D%20%22%23%22%20+%20this.id%20+%20%22%20%3E%20.toolbarbutton-menu-dropmarker%20%7B%20display%3A%20none%20%21important%3B%20%7D%22%3B%0Athis.type%20%3D%20%22menu%22%3B%0Athis.appendChild%28menupopup%29%3B%0A%0Athis.bb%20%3D%20function%28color%29%20%7B%0A%09const%20open%20%3D%20%22%5Bcolor%3D%22%3B%0A%09const%20close%20%3D%20%22%5B/color%5D%22%3B%0A%09var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%09var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09var%20oPosition%20%3D%20theBox.scrollTop%3B%0A%09var%20oHeight%20%3D%20theBox.scrollHeight%3B%0A%09var%20text%20%3D%20theBox.value.substring%280%2C%20startPos%29%3B%0A%09text%20+%3D%20open%20+%20color%20+%20%22%5D%22%20+%20theBox.value.substring%28startPos%2C%20endPos%29%20+%20close%3B%0A%09text%20+%3D%20theBox.value.substring%28endPos%2C%20theBox.value.length%29%3B%0A%09theBox.value%20%3D%20text%3B%0A%09theBox.selectionStart%20%3D%20startPos%3B%0A%09theBox.selectionEnd%20%3D%20endPos%20+%20open.length%20+%20color.length%20+%201%20+%20close.length%3B%0A%09if%20%28%21allowSelection%29%20%7B%0A%09%09var%20goMiddle%20%3D%20%28startPos%20%3D%3D%20endPos%29%20%3F%20close.length%20%3A%200%3B%0A%09%09var%20pos%20%3D%20theBox.selectionEnd%20-%20goMiddle%3B%0A%09%09theBox.selectionStart%20%3D%20theBox.selectionEnd%20%3D%20pos%3B%0A%09%7D%0A%09var%20nHeight%20%3D%20theBox.scrollHeight%20-%20oHeight%3B%0A%09theBox.scrollTop%20%3D%20oPosition%20+%20nHeight%3B%0A%7D%3B%0A%0Avar%20ios%20%3D%20Cc%5B%27@mozilla.org/network/io-service%3B1%27%5D.getService%28Ci.nsIIOService%29%3B%0Avar%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Aconst%20us%20%3D%20sss.USER_SHEET%3B%0Avar%20cssURI%20%3D%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28cssStr%29%2C%20null%2C%20null%29%3B%0Aif%20%28%21sss.sheetRegistered%28cssURI%2C%20us%29%29%20setTimeout%28function%28%29%20%7B%20sss.loadAndRegisterSheet%28cssURI%2C%20us%29%3B%20%7D%2C%20200%29%3B%0A%0Athis.onDestroy%20%3D%20function%28%29%20%7B%0A%09if%20%28sss.sheetRegistered%28cssURI%2C%20us%29%29%20sss.unregisterSheet%28cssURI%2C%20us%29%3B%0A%7D%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
Отсутствует
кстати те что отображаются для сайтов будут заменены на стандартные если очистить кэш ИЕ и быть в оффлайне.
Не знал, спасибо. Моя кнопка как раз хранит иконки отдельно в специальной папке.
Отсутствует
Про кнопку BB: Color Menu:
Вот выдержка из кнопки "Палитра цветов":
this.rgb1 = function(event) { function rgb(color) { var out = new Array(); var r = (color & (255 << 0)) >> 0; var g = (color & (255 << 8)) >> 8; var b = (color & (255 << 16)) >> 16; var rr = (r.toString(16).length == 1 ? "0" + r.toString(16) : r.toString(16)).toUpperCase(); var gg = (g.toString(16).length == 1 ? "0" + g.toString(16) : g.toString(16)).toUpperCase(); var bb = (b.toString(16).length == 1 ? "0" + b.toString(16) : b.toString(16)).toUpperCase(); out.push("#" + rr + gg + bb); // hexadecimal notation #rrggbb out.push("rgb(" + r + "," + g + "," + b + ")"); // functional notation rgb(r,g,b) return out; } var element = content.document.getElementById("chooseColor"); if (element) { element.parentNode.removeChild(element); } else { Components.utils.import("resource://gre/modules/ctypes.jsm"); var lib = ctypes.open("comdlg32.dll"); var array_custom = new ctypes.ArrayType(ctypes.uint32_t, 16); var struct_cc = new ctypes.StructType("CHOOSECOLOR", [{lStructSize: ctypes.uint32_t }, {hwndOwner: ctypes.voidptr_t}, {hInstance: ctypes.voidptr_t}, {rgbResult: ctypes.uint32_t }, {lpCustColors: array_custom.ptr}, /* test with the "Add to Custom Colors" button */ {Flags: ctypes.uint32_t }, {lCustData: ctypes.uint32_t }, {lpfnHook: ctypes.uint32_t }, {lpTemplateName: ctypes.uint32_t }]); var ccw = lib.declare("ChooseColorW", /* name */ ctypes.winapi_abi, /* abi */ ctypes.int32_t, /* return type */ struct_cc.ptr); /* arg 1 type */ const CC_FULLOPEN = 0x2; const CC_RGBINIT = 0x1; var flags = CC_FULLOPEN | CC_RGBINIT; var custom = new array_custom(); var cc = new struct_cc(struct_cc.size, null, null, 65535, custom.address(), flags, 0, 0, 0); var ret = ccw(cc.address()); // 1 for the "OK" button, 0 for the "Cancel" button lib.close(); // alert(ret + "\n" + cc.rgbResult + "\n0x" + cc.rgbResult.toString(16)); var cc1, cc2, cc3, cc4; if (ret) { cc1 = cc.lpCustColors.contents[0]; // 1st custom color, row 1, column 1 cc2 = cc.lpCustColors.contents[8]; // 2nd custom color, row 2, column 1 cc3 = cc.lpCustColors.contents[1]; // 3rd custom color, row 1, column 2 cc4 = cc.lpCustColors.contents[9]; // 4th custom color, row 2, column 2 custombuttons.alertBox("Color", "Custom Color, Row 1, Column 1, Style Background" + "\n\n" + "Hexadecimal Notation " + rgb(cc1)[0] + "\n" + "Functional Notation " + rgb(cc1)[1] + "\n\n" + "Custom Color, Row 2, Column 1, Style Color" + "\n\n" + "Hexadecimal Notation " + rgb(cc2)[0] + "\n" + "Functional Notation " + rgb(cc2)[1] + "\n\n" + "Solid Color (not applicable)" + "\n\n" + "Hexadecimal Notation " + rgb(cc.rgbResult)[0] + "\n" + "Functional Notation " + rgb(cc.rgbResult)[1]); } else { cc1 = 15790320; // #F0F0F0 rgb(240,240,240) cc2 = 0; // #000000 rgb( 0, 0, 0) } var style = content.document.createElement("style"); style.setAttribute("type", "text/css"); style.setAttribute("id", "chooseColor"); style.innerHTML = "img, embed, object { visibility: hidden !important; } " + "html * { background-image: none !important; " + "background: " + rgb(cc1)[0] + " !important; " + "color: " + rgb(cc2)[0] + " !important; }"; content.document.getElementsByTagName("head")[0].appendChild(style); } }
Отсутствует
bunda1
По поводу UserScriptLoader'а, есть у него функция сохранения скрипта, если он открыт в текущей вкладке. Например вот так. Он предлагает сохранить с правильным именем, но после нажатия кнопки "сохранить", ничего не происходит. В консоли при этом пишется:
Метка времени: 12.12.2012 20:54:58 Ошибка: NS_ERROR_XPC_NOT_ENOUGH_ARGS: Not enough arguments [nsIWebBrowserPersist.saveURI] Источник: chrome://custombuttons-context/content/button.js?windowId=Firefox&id=custombuttons-button18@init Строка: 698
В самой кнопке в этой строке:
Возможно поправить?
Отсутствует
Kamui
Поменяй на:
Отсутствует