Как удалить вкладку использую её linkedPanel
Что-то не соображу...
Открываю три вкладки library, у всех трёх - атрибут linkedpanel разный.
Ну, а закрыл их так
const library = "chrome://browser/content/places/places.xul"; Array.slice(gBrowser.tabs).forEach(function(tab) { if (tab.linkedBrowser.currentURI.spec == library) gBrowser.removeTab(tab); });
Отредактировано Dumby (24-03-2013 03:35:26)
Отсутствует
Открываю три вкладки library, у всех трёх - атрибут linkedpanel разный.
Так и должно быть, linkedpanel это что то вроде уникального id для вкладки.
Добавлено 24-03-2013 03:58:12
А за код спасибо, он работает.
Отредактировано bunda1 (24-03-2013 03:58:12)
Отсутствует
Dumby
Вот что получилось из твоего кода, может есть полезные замечания.
const library = "chrome://browser/content/places/places.xul"; // переместить вкладку библиотеки рядом с текущей вкладкой и закрыть все лишние вкладки библиотеки .... TabView._window || TabView._initFrame(); Array.slice( gBrowser.tabs ).forEach(function( tab ) { var libr = ( tab.linkedBrowser.currentURI.spec == library ); if ( libr && content.location.toString() !== library ) { if ( TabView._window.GroupItems.groupItems.length > 1 ) { TabView.moveTabTo( tab, ( TabView._window.GroupItems._activeGroupItem.id ) ); } var selIndex = gBrowser.mCurrentTab._tPos; gBrowser.moveTabTo(tab, (tab._tPos > selIndex) ? selIndex + 1 : selIndex ); gBrowser.mTabContainer.advanceSelectedTab(+1, true); var moveTab = tab.linkedPanel; return; } if ( libr && tab.linkedPanel !== moveTab ) gBrowser.removeTab( tab ); }); // открыть вкладку библиотеки рядом с текущей вкладкой если нечего переместить .... if ( content.location.toString() !== library ) gBrowser.selectedTab = gBrowser.addTab( library );
Отредактировано bunda1 (24-03-2013 05:46:09)
Отсутствует
Можно в настройках поставить подхват плагина флэш из папки профиля https://www.pgpru.com/soft/rasshirenija … #h52239-45
Но приходится вручную качать и кидать туда новые версии. Можно сделать для этого кнопочку?
Плагин брать тут http://portableappz.blogspot.ru/2011/03 … ugins.html
Как вариант кнопка может идти в системную папку и брать оттуда плагин.
Отсутствует
Только у меня на версии 20 Custom Buttons фактически перестал работать?
Иногда мне кажется, что лучшие программисты мира и лучшие технические умы работают только над одним - как сделать так, чтоб на новом скоростном железе тормозило также, как на хламе 10 летней давности.
(с)
Отсутствует
Плагин брать тут http://portableappz.blogspot.ru/2011/03 … ugins.html
Там нет плагина в виде дллки, только запаковынный в инсталлятор, который конечно же распаковывается легко, но думаю не для кнопки.
Отсутствует
Только у меня на версии 20 Custom Buttons фактически перестал работать?
Попробуйте Custom Buttons devbuilds
Отсутствует
может есть полезные замечания
Попробую
if ( libr && tab.linkedPanel !== moveTab ) gBrowser.removeTab( tab ); }); // открыть вкладку библиотеки рядом с текущей вкладкой если нечего переместить .... if ( content.location.toString() !== library ) gBrowser.selectedTab = gBrowser.addTab( library );
Вроде тут moveTab будет всегда undefined.
Открывается не рядом.
А ещё глючит, если кликнуть по кнопке,
когда library уже открыта в текущей вкладке.
Если я правильно понял, перемещается первая найденная,
остальные закрываются. Вот, попробовал тоже
const library = "chrome://browser/content/places/places.xul"; var libTab = null; Array.slice(gBrowser.tabs).forEach(function(tab) { if (tab.linkedBrowser.currentURI.spec != library) return; if (!libTab) libTab = tab; else gBrowser.removeTab(tab); }) var selTab = gBrowser.selectedTab; if (libTab != selTab) { if (libTab && gBrowser.visibleTabs.indexOf(libTab) == -1) TabView.moveTabTo(libTab, TabView._window.GroupItems._activeGroupItem.id); libTab = libTab || gBrowser.addTab(library); var pos = selTab._tPos + (libTab._tPos > selTab._tPos); gBrowser.moveTabTo(libTab, pos); gBrowser.selectedTab = libTab; }
Отсутствует
okkamas_knife
Может быть
var a = "ololo"; var b = "lol"; var regexp1 = /ololo\s+?lol/g; var regexp2 = RegExp(a + "\\s+?" + b, "g"); alert( "regexp1: " + regexp1 + "\n" + "regexp2: " + regexp2 );
Отсутствует
Всем привет!
Скажите, а можно ли запускать фрагменты кода экстеншенов из веб-страницы?
Например, я загружаю определенную страницу, и все кукизы удаляются.
Отсутствует
Если какая-нибудь кнопочка заметок кроме Fast Notes? Было бы хорошо, если там был бы редактор во вкладке, который наприме здесь:
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%3ERemove%20target%20_blank%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aapplication/text%3Bbase64%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%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//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20addHostInPref%28%29%3B%20//%20%u041B%u041A%u041C%0A%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%20//%20%u0421%u041A%u041C%0A%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20e.metaKey%20%29%20gShowPopup%28this%29%3B%20//%20%u041F%u041A%u041C%20+%20Ctrl%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%20%7B%20//%20%u041F%u041A%u041C%20%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20editExclusions%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%0A%7D%3B%0A%0A%0A%0Aconst%20editor%20%3D%20%22data%3Atext/html%3Bbase64%2CPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50ID0gInRleHQvaHRtbDsgY2hhcnNldCA9IHV0Zi04IiAvPiA8VEVYVEFSRUE+PC9URVhUQVJFQT4gPHN0eWxlPiBodG1sIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfSB0ZXh0YXJlYSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IH0gPC9zdHlsZT4KCg%3D%3D%22%3B%0Aconst%20alertsService%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0A%0Avar%20button%20%3D%20this%3B%0Avar%20val%20%3D%20Application.prefs.getValue%28%22removeTarget.disabled%22%2C%200%29%3B%0AremoveTargetDisabled%20%3D%20%28%20val%20%3D%3D%200%20%29%3F%20%22%22%3A%20val%3B%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%0A%0A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u0430%u0442%u0440%u0438%u0431%u0443%u0442%20target%20_blank%20%u0432%20%u0440%u0430%u0437%u0440%u0435%u0448%u0435%u043D%u043D%u044B%u0445%20%u0434%u043E%u043C%u0435%u043D%u0430%u0445%20.....................................%0Afunction%20removeTarget%28e%29%20%7B%20%20%0A%20%20%20%20%0A%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0432%u043B%u0430%u0434%u043A%u0438%20%u0432%20%u0444%u043E%u043D%u043E%u0432%u043E%u043C%20%u0440%u0435%u0436%u0438%u043C%u0435%20....%0A%20%20%20%20%20if%20%28%20e.type%20%21%3D%3D%20%22DOMMouseScroll%22%20%26%26%20e.target.linkedBrowser.currentURI.spec%20%21%3D%3D%20getBrowser%28%29.currentURI.spec%20%29%20return%3B%0A%0A%20%20%20%20%20if%20%28%20getBrowser%28%29.currentURI.spec%20%3D%3D%20editor%20%29%20gURLBar.value%20%3D%20%22%22%3B%20%20%20%20%20%0A%20%20%20%20%0A%20%20%20%20%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u044B%u0435%20%u0434%u043E%u043C%u0435%u043D%u044B%20%u0438%u043B%u0438%20%27reader%27%20....%0A%20%20%20%20%20if%20%28%20/reader/.test%28%20content.location%20%29%20%7C%7C%20removeTargetDisabled.indexOf%28%20content.location.host%20%29%20%21%3D%3D%20-1%20%29%20return%3B%20%20%20%20%20%20%0A%0A%20%20%20%20%20var%20links%20%3D%20gBrowser.contentDocument.links%3B%0A%20%20%20%20%20if%20%28%20%21links%20%29%20return%3B%20//%20%u0441%u0442%u043E%u043F%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0441%u0441%u044B%u043B%u043E%u043A%20%u043D%u0435%u0442%0A%20%20%20%20%20%20%20%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%20links.length%3B%20i++%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.removeAttribute%28%22target%22%2C%20%22_blank%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%7D%0AgBrowser.addEventListener%28%22DOMMouseScroll%22%2C%20removeTarget%2C%20true%29%3B%20%20%0AgBrowser.tabContainer.addEventListener%28%22TabAttrModified%22%2C%20removeTarget%2C%20true%29%3B%0A%0Athis.onDestroy%20%3D%20function%28%29%20%7B%0A%20%20%20%20gBrowser.removeEventListener%28%22DOMMouseScroll%22%2C%20removeTarget%2C%20true%29%3B%20%0A%20%20%20%20gBrowser.tabContainer.removeEventListener%28%22TabAttrModified%22%2C%20removeTarget%2C%20true%29%3B%0A%20%20%20%20%0A%20%20%20%20if%20%28reason%20%3D%3D%20%22delete%22%29%20custombuttons.clearPrefs%28%22removeTarget.disabled%22%29%3B%20%20%20%20%0A%7D%3B%0A%0A%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0438%u0439%20%u0434%u043E%u043C%u0435%u043D%20%u0438%u043B%u0438%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u0438%u0437%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u0430%20%u0432%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20.............................%0Afunction%20addHostInPref%28%29%20%7B%0A%20%20%20%20%20%0A%20%20%20%20%20var%20currURL%20%3D%20content.location.href%3B%0A%20%20%20%20%20var%20currHost%20%3D%20content.location.host%3B%0A%0A%20%20%20%20%20if%20%28%20currURL%20%21%3D%3D%20editor%20%26%26%20%21currHost%20%7C%7C%20/mozapps%7Cglobal%7Cbrowser/.test%28%20currHost%20%29%20%29%20return%3B%0A%0A%20%20%20%20%20if%20%28%20currURL%20%21%3D%3D%20editor%20%26%26%20removeTargetDisabled.indexOf%28currHost%29%20%21%3D%3D%20-1%20%29%20%7B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20button.label%2C%20%22%u0418%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u0443%u0436%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%22%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%20%20%20%20%0A%0A%20%20%20%20%20if%20%28%20currURL%20%3D%3D%20editor%20%29%20%7B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20title%20%3D%20button.label%0A%20%20%20%20%20%20%20%20%20%20var%20notification%20%3D%20%22%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u043B%20%u043D%u043E%u0432%u044B%u0439%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0439%22%3B%0A%20%20%20%20%20%20%20%20%20%20var%20image%20%3D%20%22chrome%3A//global/skin/icons/information-16.png%22%3B%0A%20%20%20%20%20%20%20%20%20%20var%20str%20%3D%20content.document.getElementsByTagName%28%22textarea%22%29%5B0%5D.value%3B%0A%20%20%20%20%20%20%20%20%20%20removeTargetDisabled%20%3D%20%28%20str.split%28%22%2C%22%29.length%20%3C%202%29%3F%20%22%22%3A%20str%3B%20//%20%u0435%u0441%u043B%u0438%20%u043D%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%u0430%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20else%20%7B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20title%20%3D%20currHost%3B%0A%20%20%20%20%20%20%20%20%20%20var%20notification%20%3D%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0434%u043E%u043C%u0435%u043D%20%u0432%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%22%3B%0A%20%20%20%20%20%20%20%20%20%20var%20image%20%3D%20gBrowser.mCurrentTab.image%3F%20gBrowser.mCurrentTab.image%3A%20button.image%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20removeTargetDisabled%20%3D%20removeTargetDisabled%20+%20currHost%20+%20%22%2C%22%20+%20%22%5Cn%22%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20%20%20Application.prefs.setValue%28%22removeTarget.disabled%22%2C%20removeTargetDisabled%20%29%3B%0A%20%20%20%20%20alertsService.showAlertNotification%28image%2C%20title%2C%20notification%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%7D%3B%0A%0A%0A%0A//%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%29%20%u0438%20%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20.............................................%0Afunction%20editExclusions%28%29%20%7B%0A%0A%20%20%20%20%20if%20%28%20removeTargetDisabled.length%20%3C%202%20%29%20%7B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20button.label%2C%20%22%u0418%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0439%20%u043D%u0435%u0442%22%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%20gBrowser.tabs.length%3B%20i++%20%29%20%7B%20//%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0435%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u044B%0A%20%20%20%20%20%20%20%20%20%20%20var%20tab%20%3D%20gBrowser.mTabs%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20tab.linkedBrowser.currentURI.spec%20%21%3D%3D%20editor%20%29%20continue%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.removeTab%28tab%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%28%20content.location.href%20%3D%3D%20editor%20%29%3F%20loadURI%28%20editor%20%29%3A%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%20editor%20%29%3B%20%20%20%20%20%20%20%0A%20%20%20%20%20gBrowser.addEventListener%28%22pageshow%22%2C%20function%28%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20content.document.title%20%3D%20%22Editor%22%3B%0A%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%22pageshow%22%2C%20arguments.callee%2C%20true%29%3B%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20content.document.getElementsByTagName%28%22textarea%22%29%5B0%5D.value%20%3D%20removeTargetDisabled%3B%20//%20%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%7D%2C%20true%29%3B%0A%7D%3B%0A%0A%0A%0Athis.tooltipText%20%3D%20%22%u041B%u041A%u041C%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0434%u043E%u043C%u0435%u043D%20%u0432%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%22%20+%22%5Cn%22+%0A%09%09%20%20%20%22%u0421%u041A%u041C%3A%20CB%20%u043C%u0435%u043D%u044E%22%20+%22%5Cn%22+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%u041F%u041A%u041C%3A%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%22%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%u041E%u043D%u043B%u0430%u0439%u043D-%u043F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u043C%20%u043E%u043A%u043D%u0435%0A%u0411%u0435%u0437%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0438%u0442%u0441%u044F%20%u0432%u0441%u044F%20%u0442%u0435%u043A%u0443%u0449%u0430%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%0A%0A%3Clabel%3E%20%0Aid%20%3D%20%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
По сути надо только чтобы кнопка открывала текстовый файл и сохраняла в него же.
Отсутствует
Dumby пишетА в чём разница ?
посмотрел внимательней на твой код сравнивая со своим..
мдя.. как всетаки сильно запись влияет на восприятие.. действительно тоже самое... только вот смотрю в твой код и вижу фигу,то бишь не втыкаю что там и как.AlexandrDa пишетСкажите, а можно ли запускать фрагменты кода экстеншенов из веб-страницы?
Например, я загружаю определенную страницу, и все кукизы удаляются.неа у страницы прав нет.
но можно сделать так
ставим на страничку какуюто метку и раширением или кнопкой отслеживаем её наличие если метка есть то запускаем нужный код.
тут есть вариант со слежением за урл
Спасибо за оперативный ответ! Практически что надо. Один момент: я переходу на страницу из формы и нужно очистить куки. Передаю в строке #1 , на который реагирует вышеприведенный код. Но в адресе все равно остается #1, которая к тому же реагирует на аякс-изменения на странице.
Как можно из адреса отрезать сразу #1?
Или задать единоразовое выполнение только при загрузке страницы?
Собственно, можно для этого сделать транзитную страницу с авторедиректом, Но спросил, вдруг кто развивал эту тему.
Отсутствует
AlexandrDa
c урл это как пример
если ты можешь менять код странички то проще добавить туда какой нибудь тэг со своим ид
скажем в самом низу
<span id='mycomand' title='clearcache'></span>
в кнопке ставишь листенер на загрузку страницы
как загрузилась ищешь на страничке элемент с ид mycomand
если он есть то либо сразу выполняешь очистку кэша либо получаешь значение title и в зависимости от того что в нём выполняешь соответствующие команды
вот пример обработки.Выделить кодКод:
var mc=window.content.document.getElementById('mycomand'); if (mc!==null){alert(mc.title)}else{ var pc=content.document.body.innerHTML; var nn=pc.toString(); var nn=nn+"<span id='mycomand' title='clearcache'></span>"; content.document.body.innerHTML=nn; alert("тэг отсутствовал.добавили жмем ок и смотрим"); var mc=window.content.document.getElementById('mycomand'); alert(mc.title) }
Все получилось, шеф! Мои благодарности!
Отсутствует
нет уж давай колись что за атрибут ты хотел повесить на страничку!
Просто я тут думаю как отследить переход по результатам поиска в гугле, ну когда переключаешь: 1 2 3 4 5 6 7 8 9 10 Следующая
Обычные обработчики это не отслеживают.
Отсутствует
как отследить переход по результатам поиска в гугле, ну когда переключаешь: 1 2 3 4 5 6 7 8 9 10 Следующая
Обычные обработчики это не отслеживают.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Лёша пишет:
Только после перезапуска, кнопка пропадает и приходится каждый раз делать снова... В чем может быть проблема?
Что значит пропадает? Нужны подробности.
Добавляю кнопку "Home"
И если выйти из лисы, то пропадает значок
Но если нажимать в "то" место, функиция работает... Но зайти в настройки данной кнопки не получается...
Отсутствует
Dumby
Как запомнить папку истории для Открывать библиотеку в вкладке и последнюю активную папку библиотеки
Проблема в том что папки истории меняются, папка которая сегодня называется Сегодня завтра будет называться Вчера . Поэтому я заблокировал в коде запоминание папок истории.
Отредактировано bunda1 (29-03-2013 13:06:16)
Отсутствует
bunda1
Может что-то вроде этого подойдёт.
Кстати, у кнопок уже существует метод init ...
// Открывать библиотеку в вкладке и последнюю активную папку библиотеки .................... this.init = function(x) { const cb = custombuttons; const pn = "CB.lastUsedLibraryFolder"; const library = "chrome://browser/content/places/places.xul"; // Перехватывать открытие библиотеки и открывать её в вкладке рядом с текущей ............ function libraryInTab(e) { var command = e.target.getAttribute("oncommand"); if (!/PlacesCommandHook.showPlacesOrganizer/.test(command)) return; e.stopPropagation(); // закрыть все вкладки библиотеки кроме первой .... var libTab = null; Array.slice(gBrowser.tabs).forEach(function(tab) { if (tab.linkedBrowser.currentURI.spec !== library) return; !libTab ? libTab = tab : gBrowser.removeTab(tab); }); // переместить или открыть библиотеку рядом с текущей вкладкой .... var selTab = gBrowser.selectedTab; if (libTab !== selTab) { if (libTab && gBrowser.visibleTabs.indexOf(libTab) == -1) TabView.moveTabTo(libTab, TabView._window.GroupItems._activeGroupItem.id); libTab = libTab || gBrowser.addTab(library); var pos = selTab._tPos + (libTab._tPos > selTab._tPos); gBrowser.moveTabTo(libTab, pos); gBrowser.selectedTab = libTab; } }; addEventListener("command", libraryInTab, true, window); // Открывать и запоминать последнюю активную папку если библиотека открыта как вкладка ............ function openLastUsedFolder(e) { var win = e.target.defaultView; if (win.location != library) return; setTimeout(function() { // открыть win.PlacesOrganizer.location = someFunction(cb.getPrefs(pn)); win.PlacesOrganizer._places.focus(); }, 100); win.addEventListener("unload", function(e) { // запоминать this.removeEventListener(e.type, arguments.callee, false); var loc = win.PlacesOrganizer.location; loc = someFunction(loc, win.document.lastModified); cb.setPrefs(pn, loc); }, false); }; function someFunction(loc, time) { if (!/beginTime/.test(loc)) return loc; const h24 = 86400000; var date = time ? new Date(time) : new Date; var midnight = date.setHours(0, 0, 0, 0); var points = { tomorrow: midnight + h24, today: midnight, yesterday: midnight - h24, week: midnight - 7 * h24, month: date.setDate(1), halfYear: date.setMonth(date.getMonth() - 5) }; var res = loc; for (var point in points) res = time ? res.replace(points[point], point) : res.replace(point, points[point]); return res; } addEventListener("DOMContentLoaded", openLastUsedFolder, false, gBrowser); // Удалить настройки кода из about:config при удалении кнопки ............ this.onDestroy = function(reason) { if (reason == "delete") cb.clearPrefs(pn); }; }; this.init(this);
Отредактировано Dumby (30-03-2013 09:44:28)
Отсутствует