Есть файл txt находящийся на компьютере, предположим c:\www\link.txt, в котором с каждой новой строки идут ссылки. Нужна кнопка, которая рандомом выбирала любую из этих ссылок (строк), вставляла бы её в адресную строку и переходила на неё.
var path = "c:\\www\\link.txt"; var urls = custombuttonsUtils. readFile (path); urls = urls. split (/[\r\n]{1,2}/); if (urls. length != 0) { var ind = Math. floor (Math. random () * urls. length); loadURI (urls [ind]); }
И аналогичная кнопка, которая вставляла бы тоже самое в поле для поиска.
var path = "c:\\www\\link.txt"; var words = custombuttonsUtils. readFile (path); words = words. split (/[\r\n]{1,2}/); if (words. length != 0) { var ind = Math. floor (Math. random () * words. length); var sb = document. getElementById ("searchbar"); sb. doSearch (words [ind], "current"); sb. value = words [ind]; sb. _textbox. _formHistSvc. addEntry (sb. _textbox. getAttribute ("autocompletesearchparam"), words [ind]); // Если надо добавить текст в историю поиска }
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
var path = "c:\\www\\link.txt"; var words = custombuttonsUtils. readFile (path); words = words. split (/[\r\n]{1,2}/); if (words. length != 0) { var ind = Math. floor (Math. random () * words. length); var sb = document. getElementById ("searchbar"); sb. doSearch (words [ind], "current"); sb. value = words [ind]; sb. _textbox. _formHistSvc. addEntry (sb. _textbox. getAttribute ("autocompletesearchparam"), words [ind]); // Если надо добавить текст в историю поиска }
Какие-то проблемы с кодировкой( Пробовал сохранять тхт файл во всех кодировках, какие возможны, но проблема не решается, до поискового бара доходят только кракозябры (если слова на русском)...
Отсутствует
Какие-то проблемы с кодировкой( Пробовал сохранять тхт файл во всех кодировках, какие возможны, но проблема не решается, до поискового бара доходят только кракозябры (если слова на русском)...
Сохраните файл в UTF-8 и скажите в коде инициализации вот что:
MyOwnConverter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance(Components.interfaces.nsIScriptableUnicodeConverter); MyOwnConverter.charset = "UTF-8";
А собственно в коде всюду замените words[ind] на MyOwnConverter.ConvertToUnicode(words[ind]). Мистика, да ?
Отредактировано luitzen (04-05-2010 13:39:30)
Отсутствует
Fest0 пишетКакие-то проблемы с кодировкой( Пробовал сохранять тхт файл во всех кодировках, какие возможны, но проблема не решается, до поискового бара доходят только кракозябры (если слова на русском)...
Сохраните файл в UTF-8 и скажите в коде инициализации вот что:
Выделить кодКод:
MyOwnConverter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance(Components.interfaces.nsIScriptableUnicodeConverter); MyOwnConverter.charset = "UTF-8";А собственно в коде всюду замените words[ind] на MyOwnConverter.ConvertToUnicode(words[ind]). Мистика, да ?
спасибо большое! Проблема решилась!
Отсутствует
bunda1
var Cc = Components. classes; var Ci = Components. interfaces; var loc = gBrowser. contentDocument. location; var uri = makeURI (loc. href); var host; try { host = uri. host; } catch (e) {} if (!host) return; var pm = Cc ["@mozilla.org/permissionmanager;1"]. getService (Ci. nsIPermissionManager); var notPermissed = true; var enumerator = pm. enumerator; var np; while (enumerator. hasMoreElements ()) { np = enumerator. getNext (). QueryInterface (Ci. nsIPermission); if ((np. type == "cookie") && (np. host == host)) { alert ("aleready permissed"); np. capability = pm. ALLOW_ACTION; notPermissed = false; break; } } if (notPermissed) { host = (host. charAt (0) == ".")? host. substring (1, host. length): host; uri = makeURI ("http://" + host); pm. add (uri, "cookie", pm. ALLOW_ACTION); }
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Люди дайте кнопку которая сайт который открыт добавляла в cookies исключение и разрешала Firefox принимать cookies с нево.
Показать исключения cookies (текущий хост будет уже введен, но нужно будет выбрать действие):
// chrome://browser/content/preferences/privacy.js // gPrivacyPane.showCookieExceptions() var bundle = Components.classes["@mozilla.org/intl/stringbundle;1"] .getService(Components.interfaces.nsIStringBundleService) .createBundle("chrome://browser/locale/preferences/preferences.properties"); var host = ""; if(["view-source:", "about:", "chrome:", "resource:", "javascript:", "data:"].indexOf(content.location.protocol) == -1) try { host = content.location.host; } catch(e) {} var params = { blockVisible : true, sessionVisible : true, allowVisible : true, prefilledHost : host, permissionType : "cookie", windowTitle : bundle.GetStringFromName("cookiepermissionstitle"), introText : bundle.GetStringFromName("cookiepermissionstext") }; var win = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator) .getMostRecentWindow("Browser:Permissions"); if(win) win.focus(); else window.openDialog("chrome://browser/content/preferences/permissions.xul", "_blank", "", params);
ЛКМ – разрешить
СКМ – показать исключения
ПКМ – запретить
Код для секции «инициализация»:
const pType = "cookie"; const pm = Components.interfaces.nsIPermissionManager; const cp = Components.interfaces.nsICookiePermission; this.onclick = this.oncontextmenu = function(e) { var but = e.button; var type = e.type; if(type == "click" && but == 0) addPermission(pm.ALLOW_ACTION); else if(type == "click" && (but == 1 || but == 0 && (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey))) openCookiesPermissions(); else if(but == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) { if(type == "click") addPermission(pm.DENY_ACTION); else if(type == "contextmenu") { e.preventDefault(); e.stopPropagation(); } } }; function openCookiesPermissions() { // chrome://browser/content/preferences/privacy.js // gPrivacyPane.showCookieExceptions() var bundle = Components.classes["@mozilla.org/intl/stringbundle;1"] .getService(Components.interfaces.nsIStringBundleService) .createBundle("chrome://browser/locale/preferences/preferences.properties"); var params = { blockVisible : true, sessionVisible : true, allowVisible : true, prefilledHost : getHost(), permissionType : "cookie", windowTitle : bundle.GetStringFromName("cookiepermissionstitle"), introText : bundle.GetStringFromName("cookiepermissionstext") }; var win = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator) .getMostRecentWindow("Browser:Permissions"); if(win) win.focus(); else win = window.openDialog("chrome://browser/content/preferences/permissions.xul", "_blank", "", params); var keypressHandler = function(e) { if(e.keyCode == e.DOM_VK_ESCAPE) win.close(); }; win.addEventListener("keypress", keypressHandler, false); win.addEventListener("unload", function _unl(e) { var win = e.target.defaultView; if(win !== win.top || e.target.location.protocol != "chrome:") return; win.removeEventListener(e.type, _unl, false); win.removeEventListener("keydown", keypressHandler, false); }, false); } function addPermission(capability) { // capability: // pm.DENY_ACTION // cm.ACCESS_SESSION // pm.ALLOW_ACTION var host = getHost(); if(!host) return; var pm = Components.classes["@mozilla.org/permissionmanager;1"] .getService(Components.interfaces.nsIPermissionManager); var enumerator = pm.enumerator; while(enumerator.hasMoreElements()) { var permission = enumerator.getNext() .QueryInterface(Components.interfaces.nsIPermission); if(permission.type == pType && permission.host == host && permission.capability == capability) return; } var uri = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService) .newURI("http://" + host, null, null); pm.add(uri, pType, capability); } function getHost() { if(["view-source:", "about:", "chrome:", "resource:", "javascript:", "data:"].indexOf(content.location.protocol) == -1) try { return content.location.host; } catch(e) {} return ""; }
Не так давно работало.
Добавлено 06-05-2010 00:33:59
P.S. Долго собирался.
Отредактировано Infocatcher (06-05-2010 00:34:48)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Вот можно использовать в качестве иконки - это печенька
А можно сделать такую кнопку:
ЛКМ - копирование URL текущей страницы в буфер обмена
ПКМ - переход на главную страницу сайта (т.е. переход со страницы типа http://www.example.com/example/page на http://www.example.com/)?
Браузер должен сам решать свои проблемы, а не возлагать их на пользователей. Minor
Отсутствует
ЛКМ - копирование URL текущей страницы в буфер обмена
ПКМ - переход на главную страницу сайта (т.е. переход со страницы типа http://www.example.com/example/page на http://www.example.com/)?
Инициализация:
this.onclick = this.oncontextmenu = function(e) { if(e.type == "click" && e.button == 0) { Components.classes["@mozilla.org/widget/clipboardhelper;1"] .getService(Components.interfaces.nsIClipboardHelper) .copyString(content.location.href); } else if(e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey) { if(e.type == "click") { content.location.pathname = ""; } else if(e.type == "contextmenu") { e.preventDefault(); e.stopPropagation(); } } };
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Kemerover
А можно ли как-нибудь сделать, чтобы там js работал?
Если под "работой js" подразумевается запуск javascript:xxx - букмарклетов, то вот здесь: http://custombuttons.mozdev.org/drupal/ … let-button есть кнопка для создания кнопок-букмарклетов.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Всем привет!
Скажите пожалуйста, возможно ли создать кнопку, которая бы переходила по ссылке (прописанной внутри кнопки, допустим yandex.ru), дожидалась полной загрузки страницы и спускалась вниз страницы (как по кнопке end на клавиатуре)?
Спасибо за ответы!
Отсутствует
Ребят я в кнопко-деланье совершенно ничего не понимаю, поэтому прошу вас помочь.
Можно ли вот этой кнопкой заменить стандартную кнопку Personal Menu
Заранее очень благодарен за помощь!
Отсутствует
2okkamas_knife
Спасибо, но в таком варианте какие-то проблемы, пару раз нажимаю на кнопку и все дальнейшие залипают внизу страницы, в т.ч. открытые просто так...
А через листенер сильно сложно сделать?
Отсутствует
okkamas_knife
Да, Вы меня правильно поняли. Но есть одно "но"... Если менять кнопку непосредственно в расширении (заменить в .xpi), то кнопка выглядит некорректно. В идеале она должна быть на подобии вкладки, на деле же она не изменяет свой размер и отображает только часть картинки в кнопке. С помощью Stylish лучшего результата добиться не удалось.
Если Вы подскажете в какую сторону копать, буду очень благодарен!
Отсутствует
Mits
var url = "http://www.yandex.ru"; var scroller = { br: null, scrollDown: function (doc) { var dv = doc. defaultView; dv. scrollTo (0, doc. height); }, handleEvent: function (event) { if (event. originalTarget. nodeName != "#document") return; this. br. removeEventListener ("load", this, true); this. scrollDown (this. br. contentDocument); }, loadURL: function () { var doc = gBrowser. contentDocument; if (url == doc. location. href) { this. scrollDown (doc); } else { var tab = gBrowser. mCurrentTab; this. br = gBrowser. getBrowserForTab (tab); this. br. addEventListener ("load", this, true); loadURI (url); } } }; scroller. loadURL (url);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Eskimo
С помощью Stylish лучшего результата добиться не удалось.
Может быть, в соседней теме: Stylish что-нибудь подскажут ?
Отредактировано Anton (10-05-2010 18:53:47)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
А кнопку, нажатие на которую приравнивалась к нажатию "отмена" или "нет" на всех всплывающих окнах возможно сделать?
Скорее всего, нет.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
okkamas_knife
Дело в том что с Custom Buttons (кнопки Personal Menu можно взять со страницы этого расширения на addons.mozilla) у меня ничего толкового тоже не вышло... так же небольшая кнопка и в ней часть нужной картинки
Отсутствует
okkamas_knife
если твоей сборкe Firefox Portable - кнопка Список вкладок-перемещение нажать пункт списка вкладок рядом с кнопкой появляется маленький белый квадратик, как это убрать
Отсутствует