Хочу создать кнопку которая будет выполнять действие сочетания клавиш ctrl+t
Подскажите пожалуйста какой код надо вписать
Отсутствует
Хочу создать кнопку которая будет выполнять действие сочетания клавиш ctrl+t
Подскажите пожалуйста какой код надо вписать
По идее говоря должна открываться новая вкладка со Speed Dial а в итоге открывается почему то пустая вкладка.
И плюс к этому после установки Custom Buttons добавился глюк. После нажатия сочетания клавиш ctrl+t теперь открывается пустая вкладка и вкладка со Speed Dial.
Не подскажете есть ли схожее с Custom Buttons дополнение. А то глюки как то пугают.
Отсутствует
sinteros
У меня в настройках выставлено открывать новую вкладку пустой, я даже и забыл, что там должен быть Speed Dial.
Так будет открываться Speed Dial
Отсутствует
Может, мы неправильно понимаем друг друга? Я имел в виду прокрутку не в основном окне а в окне самого Скретчпэда.
Извини я подумал то речь о странице
Кстати, у меня в этом окне Firegestures не работает.
А у вас?
У меня тоже.
P.S. я так сразу и не знаю как передать команды Скретчпэд разве только открывать как вкладку chrome://browser/content/devtools/scratchpad.xul
Отсутствует
Добавлено 09-05-2014 19:34:06
sinteros
У меня в настройках выставлено открывать новую вкладку пустой, я даже и забыл, что там должен быть Speed Dial.
Так будет открываться Speed Dial
Огромное спасибо! Все заработало.
Разобрался в возникновении глюка со второй открывающийся вкладкой при нажатии ctrl+t. Случайно добавил лишний элемент к кнопке в виде сочетании клавиш в меню "Настройка кнопок".
Но самое неприятное все же это жуткая задержка когда нажимаешь на кнопку и отсутствие задержки при нажатии ctrl+t.
Отредактировано sinteros (09-05-2014 19:36:59)
Отсутствует
Кто-то сможет починить кнопку [Двойным правым кликом добавлять закладку в папку закладок]?
Она перестала добавлять во вложенные в основную папки (т.е. на панели закладок папка, а в ней ещё - и вот в эту уже не добавляет)
она добавляет вниз папки (а была другая: она двойным левым добавляла -вверх)
// Двойным левым кликом на папке закладок добавлять закладку в папку закладок, от 09.05.2014. ................................ addEventListener("dblclick", function(e) { var target = e.originalTarget; if ( e.button !== 0 || !target._placesNode || !PlacesUtils.nodeIsFolder( target._placesNode ) ) return; var docTitle = ( content.document.title || gBrowser.mCurrentTab.label).substr(0, 50); var folderId = PlacesUtils.getConcreteItemId( target._placesNode ); var folderTitle = PlacesUtils.bookmarks.getItemTitle( folderId ); var currentURI = Services.io.newURI( content.location, null, null ); PlacesUtils.bookmarks.insertBookmark( folderId, currentURI, 0, docTitle ); // всплывающая подсказка .... var favicon = ( !!gBrowser.mCurrentTab.image ) ? gBrowser.mCurrentTab.image : "chrome://global/skin/icons/Portrait.png"; Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) .showAlertNotification( favicon, "Добавил в папку " + folderTitle + ":", docTitle, false, "", null, ""); });
Отредактировано bunda1 (09-05-2014 20:23:18)
Отсутствует
но почему так не работает:
Выделить кодКод:
const lighted = finder[version ? "_highlight" : "_highlightDoc"]; lighted(false); lighted(true, value );и показывает ошибку this._getWindow is not a function для аргумента функции:
Выделить кодКод:
_highlight: function (aHighlight, aWord, aWindow) { let win = aWindow || this._getWindow();
При таком вызове this внутри функции будет ссылаться на глобальный объект (то есть на window).
var o = { m: function() { alert([this == o, this == window]) } }; o.m(); var m = o.m; m(); m.call(o);
Кстати, вот так будет чуть-чуть быстрее:
(но в данном случае это не особо важно)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Спасибо
Кстати, вот так будет чуть-чуть быстрее:
Мда, а я сам не сообразил.
Отсутствует
(отсюда)
Как сделать, чтобы расширение (джетпак) при запуске браузера было отключено и включалось через N секунд после запуска?
https://github.com/Infocatcher/Delayed_Startup
Добавлено 09-05-2014 21:31:10
Мда, а я сам не сообразил.
Не, про скорость не очевидно, но я как-то проверял. Впрочем, я что-то думал, что там было более похоже на этот случай, так что можно тоже протестировать.
Добавлено 09-05-2014 21:34:08
Кстати, а
(или наоборот) не поможет?
Но это, конечно, только если эту функцию просто переименовали.
Отредактировано Infocatcher (09-05-2014 21:34:08)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Таки да, работает:
но нужна передать правильный this через bind
Отсутствует
Но самое неприятное все же это жуткая задержка когда нажимаешь на кнопку и отсутствие задержки при нажатии ctrl+t.
sinteros
Вроде бы не должно быть жуткой задержки... Ну попробуйте еще так
https://github.com/Infocatcher/Delayed_Startup
Я правильно понял, что надо положить все эти файлы в одну папку и запустить батник, а он из них сделает расширение?
Отсутствует
sinteros пишетНо самое неприятное все же это жуткая задержка когда нажимаешь на кнопку и отсутствие задержки при нажатии ctrl+t.
Вроде бы не должно быть жуткой задержки... Ну попробуйте еще так
В принципе тоже самое. Родной диал дает небольшую задержку а сторонний в 2 раза больше. Периодически задержка проявляется и при нажатии клавиш ctrl+t. Может конечно это мои придирки. И именно так все и должно быть.
Просто я сравниваю с Оперой в которой пожалуй самый плавный и быстрый диал с нулевой задержкой и вполне нормальным функционалом.
Спасибо вам за помощь! Но дело похоже в самой мозиле.
Отсутствует
Я правильно понял, что надо положить все эти файлы в одну папку и запустить батник, а он из них сделает расширение?
Да, но «сделает» – это громко сказано, можно упаковать файлы в ZIP любым другим способом.
Или вообще скачать отсюда: https://github.com/Infocatcher/Delayed_Startup/releases (но там не самая новая версия).
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
можно упаковать файлы в ZIP любым другим способом.
Вот я попробовал сам упаковать и что-то пошло не туда. Что я сделал:
Запустил ФФ, он попросил разрешения установить расширение, я разрешил и браузер закрылся.
Теперь при запуске он вылетает через полсекунды и я ничего с ним сделать не могу. В файле extensions.ini расширение delayedStartup отсутствует, а удаление самого архива из папки extensions ничего не дает.
Может дело в том, что я пытался установить на 20-ю версию?
Отсутствует
В 29 Не работают кнопки в новой всплывающей панели, пока не нажмешь на кнопку вызова этой панели, потом начинают работать, как исправить?
Отредактировано villa7 (10-05-2014 19:36:12)
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
В 29 Не работают кнопки в новой всплывающей панели, пока не нажмешь на кнопку вызова этой панели, потом начинают работать, как исправить?
Отсутствует
bunda1
Ага, заработало, спасибо. А если не трудно, можешь глянуть VT2, очень нужна, и достойной замены нет, а Dumby молчит.
https://forum.mozilla-russia.org/viewto … 14#p611514
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
bunda1
Ага, заработало, спасибо. А если не трудно, можешь глянуть VT2, очень нужна, и достойной замены нет, а Dumby молчит.
https://forum.mozilla-russia.org/viewto … 14#p611514
Ок
Отсутствует
Вот я попробовал сам упаковать и что-то пошло не туда. Что я сделал:
Скачал файлы bootstrap.js, chrome.manifest, delayedStartup.js, install.rdf
Упаковал их в архив ZIP
Сменил расширение на xpi, назвал архив delayedStartup@infocatcher.xpi и положил в папку extensions
Ну, вроде, верно все. Только можно *.xpi просто перетащить на окно браузера, он сам предложит установить.
И скачать проще все разом: https://github.com/Infocatcher/Delayed_ … master.zip
Запустил ФФ, он попросил разрешения установить расширение, я разрешил и браузер закрылся.
Теперь при запуске он вылетает через полсекунды и я ничего с ним сделать не могу. В файле extensions.ini расширение delayedStartup отсутствует, а удаление самого архива из папки extensions ничего не дает.Может дело в том, что я пытался установить на 20-ю версию?
Странно, у меня на 20-ю ставится (и работает).
Если в папке extensions ничего нет, то падает уже не расширение...
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Попытки реанимировать браузер ни к чему не привели. Он упорно вылетает сразу после запуска.
Я создал новый профиль и на него это расширение установилось как по маслу. Причем тем же самым способом, я специально старался воспроизвести свои вчерашние действия - думал может увижу причину. Но нет, пока никаких осложнений.
А что ж могло случиться со старым профилем? До вчерашней установки delayedStartup не только крэшей не было, а и жалоб на тормоза или т. п.
Отредактировано beggrr (11-05-2014 00:21:45)
Отсутствует
А что ж могло случиться со старым профилем? До вчерашней установки delayedStartup не только крэшей не было, а и жалоб на тормоза или т. п.
Не знаю, подобного у меня никогда не было. Можно попробовать последовательно переносить в новый работающий профиль данные из старого, чтобы отловить причину падений.
Или наоборот – удалять из старого, пока не запустится. Скажем, попробовать сперва удалить addons.* и extensions.*.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
На правах развлечения.
Имитация разделителей для Australis'а:
https://github.com/Infocatcher/Custom_Buttons/tree/master/Toolbar_Separator
https://github.com/Infocatcher/Custom_Buttons/tree/master/Toolbar_Space
https://github.com/Infocatcher/Custom_Buttons/tree/master/Toolbar_Flexible_Space
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Помогите, пожалуйста, приделать счётчик количества совпадений к панели поиска. К стандартной панели, не кнопке.
Я взял за основу этот код
var curHit, allHits, lastCurHit; const fff = gFindBar._findField, lab = fff.parentNode.insertBefore( document.createElement("label"), fff ), nrm = Ci.nsISelectionController.SELECTION_NORMAL; lab.id = "hits"; addDestructor(function() fff.parentNode.removeChild(lab) ); function updateHits(arg) { if ( gFindBar.hidden ) return; var win = arg instanceof Ci.nsIDOMWindow && arg || content; var finder = (fxVersion > 26 ? gBrowser.finder : gFindBar); if ( win == content ) curHit = allHits = 0; var word = fff.value; var controller = finder._getSelectionController(win); var doc = win.document; if ( word && controller && doc && doc.documentElement ) { var body = doc instanceof HTMLDocument && doc.body ? doc.body : doc.documentElement; var searchRange = doc.createRange(); searchRange.selectNodeContents(body); var startPt = searchRange.cloneRange(); startPt.collapse(true); var endPt = searchRange.cloneRange(); endPt.collapse(false);fxVersion
Отредактировано rbfyec (13-05-2014 16:49:50)
Отсутствует
Помогите, пожалуйста, приделать счётчик количества совпадений к панели поиска. К стандартной панели, не кнопке.
const forceFind = false, forceFindCS = true; // Приклеить элемент findbar к странице( #appcontent ) ................................ const fbID = "FindToolbar-m"; delete window.gFindBar; window.gFindBar = document.getElementById(fbID); if (!gFindBar) { gFindBar = gBrowser.parentNode.insertBefore(document.createElement("findbar"), gBrowser); gFindBar.id = fbID; gFindBar.setAttribute("browserid", "content"); gFindBar.clientTop; delete window.gFindBarInitialized; window.gFindBarInitialized = true; gFindBar._selectionMaxLen = 1000; // лимит символов для поиска } // Ctrl+F, показать - скрыть панель поиска .................................... function toggleFindbar() gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close(); addEventListener("keydown", function(e) e.keyCode == e.DOM_VK_F && e.ctrlKey && !e.altKey && !e.shiftKey && !e.preventDefault() && toggleFindbar() , false); this.onclick = function(e) { if (!e.button) toggleFindbar() }; // Показать количество совпадений на панели поиска ................................ const textbox = gFindBar.getElement("findbar-textbox"), nrm = Ci.nsISelectionController.SELECTION_NORMAL, labID = "hits-m"; var lab = document.getElementById(labID); if (!lab) { lab = textbox.parentNode.insertBefore(document.createElement("label"), textbox); lab.id = labID; } var curHit, allHits; function updateHits(arg) { if (gFindBar.hidden) return; var word = textbox.value; if (!word) { lab.value = "0/0"; textbox.removeAttribute("status"); return; } var win = arg instanceof Window && arg || content; if (win == content) curHit = allHits = 0; var findbarFinder = gFindBar._browser.finder; var controller = findbarFinder._getSelectionController(win); var doc = win.document; if (word && controller && doc && doc.documentElement) { var body = doc instanceof HTMLDocument && doc.body ? doc.body : doc.documentElement; var searchRange = doc.createRange(); searchRange.selectNodeContents(body); var startPt = searchRange.cloneRange(); startPt.collapse(true); var endPt = searchRange.cloneRange(); endPt.collapse(false); var retRange = null; var finder = Cc["@mozilla.org/embedcomp/rangefind;1"].createInstance().QueryInterface(Ci.nsIFind); finder.caseSensitive = gFindBar._shouldBeCaseSensitive(word); while ((retRange = finder.Find(word, searchRange, startPt, endPt))) { allHits++; if (!curHit) { var sel = controller.getSelection(nrm), range; if (sel.toString()) range = sel.getRangeAt(0); else { var editableNode = findbarFinder._getEditableNode(retRange.startContainer); if (editableNode) sel = editableNode.editor.selectionController.getSelection(nrm); if (sel.toString()) range = sel.getRangeAt(0); } var comp = range && ["startContainer", "endContainer", "startOffset", "endOffset"] .every(function(prop) range[prop] == retRange[prop]); if (comp) curHit = allHits; } startPt = retRange.cloneRange(); startPt.collapse(false); } Array.forEach(win.frames, function(frame) updateHits(frame)); } if (win != content) return; allHits ? textbox.removeAttribute("status") : textbox.setAttribute("status", "notfound"); forceFind && !curHit && allHits && gFindBar._find(); lab.value = curHit + "/" + allHits; } updateHits(); gFindBar.updateHits = updateHits; function insUpd(methodName, code) { const method = gFindBar[methodName]; gFindBar[methodName] = Function("arguments.callee.method.apply(this, arguments);" + (code || "") + " this.updateHits();"); gFindBar[methodName].method = method; addDestructor(function() gFindBar[methodName] = method); } insUpd("_find"); insUpd("_findAgain"); insUpd("_setCaseSensitivity", forceFindCS && " this._find();"); const progressListener = { onStateChange: function(wpr, req, state) state & Ci.nsIWebProgressListener.STATE_STOP && setTimeout(updateHits, 320), onLocationChange: function(wpr, req) !req && updateHits() }; addDestructor(function() gBrowser.removeProgressListener(progressListener)); function onFindbar() { gBrowser[(gFindBar.hidden ? "remove" : "add") + "ProgressListener"](progressListener); !gFindBar.hidden && updateHits(); } onFindbar(); const observer = MutationObserver(onFindbar); observer.observe(gFindBar, { attributes: true, attributesFilter: ["hidden"] }); addDestructor(function() observer.disconnect());
Отсутствует
bunda1
панель вверху окрывается с этим кодом в firefox 28,можно оставить чтобы внизу открывалась?
Отредактировано roadrunner (13-05-2014 23:17:19)
Отсутствует