В связи с появлением вот таких кодов:
положите код в любую Custom Buttons кнопку, в инициализацию
Назрел вопрос: если в итоге, в инициализации, могут встретиться переменные и т.д. с одинаковыми именами - это же нехорошо? При размещении таких кодов нужно обращать внимание на это?
И теперь вопрос по коду: хочу сделать, чтобы при нажатии СКМ по кнопке "Восстановить закрытую вкладку" (от дополнения Session Manager) выполнялось "Стереть недавнюю историю" (Очистить список закрытых вкладок). Подглядев во внутренности дополнения, сочинил такое:
// СКМ ПО КНОПКЕ UNDO CLOSE TAB > СТЕРЕТЬ СПИСОК ЗАКРЫТЫХ ВКЛАДОК this.onDestroy = function() {document.getElementById("undoclosetab-button").removeEventListener("click", uctab, false);}; document.getElementById("undoclosetab-button").addEventListener("click", uctab, false); function uctab(event){ if (event.button==1) {gSessionManager.clearUndoListPrompt();}; };
видать не правильно подглядел - что-то не работает
Уважаемые гуру кнопкописания, подмогните пожалуйста!
Отсутствует
Подскажите, как изменить горячие клавиши в Toggle Elements | custombuttons?
Отсутствует
В связи с появлением вот таких кодов:
положите код в любую Custom Buttons кнопку, в инициализацию
Назрел вопрос: если в итоге, в инициализации, могут встретиться переменные и т.д. с одинаковыми именами - это же нехорошо? При размещении таких кодов нужно обращать внимание на это?
В принципе ты прав, проблемы могут быть и бывает. Но с другой стороны у меня в одной кнопке десятки кодов и проблем нет. Просто надо это проверять практически. Создавать для каждого кода по кнопке жирно будет.
Уважаемые гуру кнопкописания, подмогните пожалуйста!
document.getElementById("sessionmanager-undo").setAttribute("onclick", "if (event.button==1) com.morac.SessionManagerAddon.gSessionManager.clearUndoListPrompt();");
Но это не то.
Отредактировано bunda1 (15-11-2011 09:13:45)
Отсутствует
Но это не то.
Да, с этим кодом кнопка в которую его добавляю, вообще становится не активной
Попробовал добавить действие: com.morac.SessionManagerAddon.gSessionManager.clearUndoListPrompt(); в приведенный мной выше код - вот так очистка закрытых вкладок происходит, но иконка кнопки продолжает оставаться активной, на состояние "пусто" не сбрасывается. Можешь что-нибудь предложить?
Отредактировано Inko7 (15-11-2011 11:32:42)
Отсутствует
bunda1 пишетНо это не то.
Да, с этим кодом кнопка в которую его добавляю, вообще становится не активной
Как так, у меня мой код работает и при нажатии СКМ по кнопке "Восстановить закрытую вкладку" выполняется (Очистить список закрытых вкладок).
document.getElementById("sessionmanager-undo").setAttribute("onclick", "if (event.button==1) com.morac.SessionManagerAddon.gSessionManager.clearUndoListPrompt();");
Но это не то.
Я это написал, потому что мой код блокирует оригинальный ПКМ по кнопке "Восстановить закрытую вкладку".
Добавлено 15-11-2011 20:30:31
Подскажите, как изменить горячие клавиши в Toggle Elements | custombuttons?
Там все проста, нужная клавиша без !
пример:
if (event. button == 0 && event.altKey && ! event.ctrlKey && !event.shiftKey){var Id = 'forward-button'}
держать alt + ЛКМ по кнопке
if (event. button == 0 && ! event.altKey && event.ctrlKey && !event.shiftKey){var Id = 'forward-button'}
теперь - держать ctrl+ ЛКМ по кнопке
Отредактировано bunda1 (15-11-2011 20:33:36)
Отсутствует
Я это написал, потому что мой код блокирует оригинальный ПКМ по кнопке "Восстановить закрытую вкладку".".
Он не блокирует ПКМ! Когда список закрытых вкладок очищен, нажатие ПКМ итак не активно! Просто происходит то, о чем я писал выше:
иконка кнопки продолжает оставаться активной, на состояние "пусто" не сбрасывается. Можешь что-нибудь предложить?
Отсутствует
bunda1
целиком твой код у меня по прежнему не работает - как только помещаю его в любую кнопку, она тут же становится не активной. Из-за чего такое может происходить я не знаю...
Но как я понимаю, главное в коде: com.morac.SessionManagerAddon.gSessionManager.clearUndoListPrompt();
Вот поэтому я его поместил в более развернутый код:
this.onDestroy = function() {document.getElementById("undoclosetab-button").removeEventListener("click", uctab, false);}; document.getElementById("undoclosetab-button").addEventListener("click", uctab, false); function uctab(event){ if (event.button==1) {com.morac.SessionManagerAddon.gSessionManager.clearUndoListPrompt();}; };
И вот так код работает - при нажатии СКМ по кнопке "Восстановить закрытую вкладку" очищается список закрытых вкладок!
При этом значок кнопки продолжает оставаться активным, как-будто закрытые вкладки есть. Но так как мы их реально очистили, ни ПКМ, ни ЛКМ уже не работают (и не должны). Если не использовать СКМ, то кнопка работает в штатном режиме - ЛКМ и ПКМ выполняют свои стандартные функции.
Так вот я и задавал вопрос: как можно сделать, чтобы после нажатия СКМ, значок кнопки сбрасывался на "пустое" состояние?
Вот эту проблему можно решить?
Отсутствует
bunda1
Блиииин, реально протупил
Оказывается эта кнопка относится к Tab Utilities! Каюсь и прошу прощения.
Вот эту я имел ввиду:
Еще раз извини, что ввел в заблуждение. Я не специально.
Отсутствует
Теперь поковырялся в коде Tab Utilities
Вроде бы нашел то, что нужно! Вот что получилось:
// СКМ ПО КНОПКЕ UNDO CLOSE TAB (дополнение Tab Utilities) > СТЕРЕТЬ СПИСОК ЗАКРЫТЫХ ВКЛАДОК // удаление обработчика при повторной инициализации this.onDestroy = function() {document.getElementById("undoclosetab-button").removeEventListener("click", uctab, false);}; document.getElementById("undoclosetab-button").addEventListener("click", uctab, false); function uctab(event){ if (event.button==1) { var maxTabsUndo = TU_getPref("browser.sessionstore.max_tabs_undo"); TU_setPref("browser.sessionstore.max_tabs_undo", 0); TU_setPref("browser.sessionstore.max_tabs_undo", maxTabsUndo); document.getElementById("History:UndoCloseTab").setAttribute("disabled", tabutils._ss.getClosedTabCount(window) == 0); gBrowser._lastClosedTabsCount = null; }; };
Так что вопрос можно закрывать! Всем спасибо.
Отредактировано Inko7 (17-11-2011 13:11:44)
Отсутствует
Возможна ли кнопка удаляющая и добавляющая определённые элементы в URL ? Конечно подозреваю что да.....
Например
http://www.youtube.com/watch?v=s1-Fo7uQlrY
или
http://www.youtube.com/watch?v=s1-Fo7uQlrY&feature=player_embedded
необходимо привести к такому виду >
http://www.youtube.com/v/s1-Fo7uQlrY
то есть удалить всё лишнее и добавить v/
Отредактировано Крошка Ру (20-11-2011 10:28:22)
Отсутствует
okkamas_knife Спасибо Вроде бы работает исправно , только забыл один момент - можно сделать чтобы при клике URL копировался в буфер обмена
Отсутствует
okkamas_knife ага, добавил Готова кнопка - осталось название придумать
Отредактировано Крошка Ру (20-11-2011 12:27:05)
Отсутствует
okkamas_knife С плеером ВКонтакте наверное посложнее будет
Можно брать код для вставки
<iframe src="http://vk.com/video_ext.php?oid=55588330&id=161236641&hash=307de7f4c60719a3" width="607" height="360" frameborder="0"></iframe>
и уже оттуда выдёргивать URL
http://vk.com/video_ext.php?oid=55588330&id=161236641&hash=307de7f4c60719a3
Добавлено 20-11-2011 12:47:42
ну придумывай, делай иконку и пости в готовые. в чем проблема то?
(на портаблеаппс есть редактор для иконок портабельный есичо)
okkamas_knife Ни в чём Думал у автора название лучше получится
Отредактировано Крошка Ру (20-11-2011 12:47:59)
Отсутствует
okkamas_knife так плееров этих по всему рунету полно не надо иметь аккаунта чтобы смотреть http://kinobaza.tv/film/368302/Первый_м … 011#online
Отсутствует
okkamas_knife Нет, если кнопка будет выдирать URL из кода который предлагается для вставки
Добавлено 20-11-2011 13:32:52
Сейчас попробовал для dailymotion.com - заместо http://www.youtube.com/v/
вставил http://www.dailymotion.com/embed/video/ конечно надо наверное
где-то ещё поправить ,а то получается так www.dailymotion.com/embed/video/o/xglmla_lolitta-london- вместо http://www.dailymotion.com/embed/video/xglmla
Отредактировано Крошка Ру (20-11-2011 13:32:52)
Отсутствует
таки я не понял откуда вы хотите получать код из кода странички или из окошка скопировать код или из буфера обмена?
okkamas_knife
Да откуда угодно, если там нужный кусочек содержится ... и конечно как и в случае с youtube - с последующем копированием в буфер обмена
Для dailymotion.com получилось вроде бы
var url1="http://www.dailymotion.com/embed/video/"; var url = window._content.document.location.href; var chkpoint="_"; var url=url.slice(33,55); var arrayOfStrings = url.split(chkpoint); var url2=arrayOfStrings[0]; loadURI(url1+url2) const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]. getService(Components.interfaces.nsIClipboardHelper); gClipboardHelper.copyString(url1+url2)
думаю разберёшься что подправить чтоб работало для того сайта
не думаю что разобрался - потыкал интуитивно но сработало
Добавлено 20-11-2011 14:54:44
а для vimeo.com вроде бы не отрезать а добавлять надо ?
http://player.vimeo.com/video/27672943
http://player.vimeo.com/video/27672943?title=0&byline=0&portrait=0
Отредактировано Крошка Ру (20-11-2011 14:55:29)
Отсутствует
то есть кнопка берущая из буфера обмена тот код и открывающая в новой вкладке обрезанный из того кода урл будет такой
okkamas_knife ага -работает замечательно но надо сначала вызвать контекстное меню плеера и скопировать код , а это лишняя морока с кликами
Да откуда угодно, если там нужный кусочек содержится ... и конечно как и в случае с youtube , копированием в буфер обмена
то есть имелось ввиду что кусочек содержится именно в коде а не в буфере
Добавлено 20-11-2011 15:53:34
то есть та же самая ютубовская кнопка только урл2 не вычисляется а просто присваивается а урл 1 берется напрямую из текущего адреса.
считать текущий урл в переменную а
присвоить переменной б значение то что надо добавить
открыть адрес а+б
okkamas_knife очень просто - "а" и "б" сидели на трубе ....как и куда присвоить ?
Отредактировано Крошка Ру (20-11-2011 15:53:34)
Отсутствует
ну первая строчка в ютубовском коде де же!
okkamas_knife
так я ж добавил в первой строчке
var url1="http://player.vimeo.com/video/";
и сосчитал в четвёртой
var url=url.slice(30,55);
Добавлено 20-11-2011 16:08:40
вот тебе простой пример чтоб потыкаться и разобраться скопируй его в секцию код новой кнопки и нажми её. ну адалее попробуй поизменять наблюдая за результатом
сейчас попробую
Добавлено 20-11-2011 16:19:17
... попробовал .....
Отредактировано Крошка Ру (20-11-2011 16:19:17)
Отсутствует
да без кнопки для vimeo можно и обойтись .... всё равно надо думать как включать plugin-container.exe при заходе на это сайт
Добавлено 20-11-2011 16:26:02
ну а тут уже надо индивидуально для каждого сайта подходить и код получится тяжёлый.
okkamas_knife не надо - код в самом плеере а он имеет прямой URL с vk.com
Добавлено 20-11-2011 16:28:22
и каков результат? разобрался?
теперь знаю как такие окошечки делать .... а в остальном - ни фига
Отредактировано Крошка Ру (20-11-2011 16:28:22)
Отсутствует