solombala
Так что ли?
this.onclick = e => e.button || ( gURLBar.focused && gURLBar.value ? gURLBar.handleCommand(e) : BrowserReload() );
(this.preventClearThumbs || (g => { var key = "onClearHistory", obs = g.PageThumbsHistoryObserver, func = obs[key]; return this.preventClearThumbs = () => obs[key] = () => obs[key] = func; })(Cu.import("resource://gre/modules/PageThumbs.jsm", {})))();
Отсутствует
Dumby
Там еще правая была , но так заработало, респект , правда, выделять надо , чтобы перейти или поиск, а сразу нельзя? gURLBar.inputField.focus(); Без этого...?
Не, нормально..
/*Initialization Code*/ this.onclick = this.oncontextmenu = function(event) { if (event.button == 0) { var s = "GetStop"; function toggleImage() { self.image = cbu.getPrefs(s) ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAEQklEQVR42n2UbUzVZRjGf+eFEIQUDjWI5rAOMlNRGIu1XjeZzTnN2fyQUMRWOy6KtWjT+cGYH3LZ6oOzWEqMBayVisTcFJ2ITjLQ4Ru5qeQYnQPIiygCR97O6Xr+ByQVfLZn/+d5/s99Pfd9X9d925hx5DuhMQZSUiDhJeh5Bm6HQdQIjPwLbVeg/R/wD8FQ8FFr2+OA0QL44E1IXwcLMgQaC2MOgemuPyDwcfB1wNXTcL5G87yMBp8AmrEYPs+12bLXrFrFAl2f29eH/eE7ftm0j8L1e9ByDZp/hwOadM4AullhFhbk5LjXeTzECcxWXo69qgqCCjAmBpvdTtDvh+FhdHJbNucm4KLScKkSfi2dAp4EdSrkXwo9nvdyd+7k2cZGxuvrcSijjrY2qJTJnTswfz5ERMDAAEGfj4mJCb/A64TReF3fH6ChTGDDOlikfL2yPi2trOjwYVI6Ownm5+OQkUMPkJMDhw5BbS20tip4eToh/4ZEkR4cHxzsFXCtTs78BaXbYPSsQJfHKezvSkreX79kCZFFRRaA06GnVq+G/fthzhzo74fToqapCW7cgFu3lABloKUFEdconIY+KCmGjm+0ef012LfP40lZZC7V1WFzu7EtXRoKOUP8b906nfn796071gOG9+ZmAv39Pv2pEXm1f8Ixj0BzP4ayHZs2EZ+URCAxEbvxcOFCOHUK9u6FPXssoh4ahjxDYnU1VFQgqVUJq74dfvpEi+xtyckVX+hlV3y8+Tktobt3weQ1NRX06Kzj6FECckRYRV2y2K7F2q8yM2s+O3IEl7wJ/l9mJo8GdMWK2UG7uqw7gd27b8quVJn+focW72xREF+WluLKy7NAH3h68qQoLIQTJx4P3xC2axccPGh21xRhg7Au6oli42lWNhTod3o8JJKWhj0rC8JU6cePh0IvKZkGM3k2e2mZ3l4V8JhqdDAg0DKT05sqggIt3Mthy8/6LlOdS0hJOgu3vF25UpyquiMjQw+IEMO2BeRy6Va4Ja+A1yssqsX+AT157lMBvBolL6XODR9C8tPGW40w05+Kpbr0dMVRAMq55b0UQkICGN86OgjKYwn/N+E0ye+yHyXEbydJWfaGTL+Gl6XK53UWa9+4EacJ3Yj/8uWQZ2Yfq541ogaoigteuGCEL9Fy1nwbNLebzRTTc9VQPoLMzeqhbpVtQKHZZKx09NojI+MsBTidBO+pN3m9BHt6jIf1IvaKMM78rbW87K6crP0H4zkB50lAEk/yCxKBGnWs/qfaoqJCeTQehoZPYM2aV3XabNqfst1arh/dMzVpKWDNu0qH5otqhYnzBCw6wieVNmS6m8B8KlbvgCTUEuqnvX9MAc7S+RHX0cre4rfl9Vvq/qIm4ilRI9QRAXqH1aBFd4ty2H1M9y+ZkJ/Q+adGtM7Hw0MpIXnyK+CxUVNEmmqCAXWRgN+0gUet/wNAL5t/cJT8RAAAAABJRU5ErkJggg==' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAEQklEQVR42n2UbUzVZRjGf+eFEIQUDjWI5rAOMlNRGIu1XjeZzTnN2fyQUMRWOy6KtWjT+cGYH3LZ6oOzWEqMBayVisTcFJ2ITjLQ4Ru5qeQYnQPIiygCR97O6Xr+ByQVfLZn/+d5/s99Pfd9X9d925hx5DuhMQZSUiDhJeh5Bm6HQdQIjPwLbVeg/R/wD8FQ8FFr2+OA0QL44E1IXwcLMgQaC2MOgemuPyDwcfB1wNXTcL5G87yMBp8AmrEYPs+12bLXrFrFAl2f29eH/eE7ftm0j8L1e9ByDZp/hwOadM4AullhFhbk5LjXeTzECcxWXo69qgqCCjAmBpvdTtDvh+FhdHJbNucm4KLScKkSfi2dAp4EdSrkXwo9nvdyd+7k2cZGxuvrcSijjrY2qJTJnTswfz5ERMDAAEGfj4mJCb/A64TReF3fH6ChTGDDOlikfL2yPi2trOjwYVI6Ownm5+OQkUMPkJMDhw5BbS20tip4eToh/4ZEkR4cHxzsFXCtTs78BaXbYPSsQJfHKezvSkreX79kCZFFRRaA06GnVq+G/fthzhzo74fToqapCW7cgFu3lABloKUFEdconIY+KCmGjm+0ef012LfP40lZZC7V1WFzu7EtXRoKOUP8b906nfn796071gOG9+ZmAv39Pv2pEXm1f8Ixj0BzP4ayHZs2EZ+URCAxEbvxcOFCOHUK9u6FPXssoh4ahjxDYnU1VFQgqVUJq74dfvpEi+xtyckVX+hlV3y8+Tktobt3weQ1NRX06Kzj6FECckRYRV2y2K7F2q8yM2s+O3IEl7wJ/l9mJo8GdMWK2UG7uqw7gd27b8quVJn+focW72xREF+WluLKy7NAH3h68qQoLIQTJx4P3xC2axccPGh21xRhg7Au6oli42lWNhTod3o8JJKWhj0rC8JU6cePh0IvKZkGM3k2e2mZ3l4V8JhqdDAg0DKT05sqggIt3Mthy8/6LlOdS0hJOgu3vF25UpyquiMjQw+IEMO2BeRy6Va4Ja+A1yssqsX+AT157lMBvBolL6XODR9C8tPGW40w05+Kpbr0dMVRAMq55b0UQkICGN86OgjKYwn/N+E0ye+yHyXEbydJWfaGTL+Gl6XK53UWa9+4EacJ3Yj/8uWQZ2Yfq541ogaoigteuGCEL9Fy1nwbNLebzRTTc9VQPoLMzeqhbpVtQKHZZKx09NojI+MsBTidBO+pN3m9BHt6jIf1IvaKMM78rbW87K6crP0H4zkB50lAEk/yCxKBGnWs/qfaoqJCeTQehoZPYM2aV3XabNqfst1arh/dMzVpKWDNu0qH5otqhYnzBCw6wieVNmS6m8B8KlbvgCTUEuqnvX9MAc7S+RHX0cre4rfl9Vvq/qIm4ilRI9QRAXqH1aBFd4ty2H1M9y+ZkJ/Q+adGtM7Hw0MpIXnyK+CxUVNEmmqCAXWRgN+0gUet/wNAL5t/cJT8RAAAAABJRU5ErkJggg=='; } toggleImage(); Services.prefs.addObserver(s, toggleImage, false); addDestructor(()=> Services.prefs.removeObserver(s, toggleImage) ); gURLBar.focused && gURLBar.value ? gURLBar.handleCommand(event) : BrowserReload() gURLBar.inputField.blur(); } if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey){ var s = "GetStop"; cbu.setPrefs(s, cbu.getPrefs(s) == true ? false : true); function toggleImage() { self.image = cbu.getPrefs(s) ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAEMklEQVR42nWVe0yTVxiHn6/llkAVW27CuBSWEFyo2dChizGaaQhGjWE4NbpsyaKN2/xDlxBj0P2h0USjZGGRgNmyRUCj69wyZTDN2GSbYZOZjRgUBuUiA+qqaDEzQNu95/u4X07Snvac7zx9z+/9vW815hg/gy0EHAFYMgpBmfHLSz4TMGbtP7jngeYPwDPzvDZz4UdYFAVvR6ek5MesWrU4aDIF0YzHFDgYDOIPBLSuhoaBjp6e69/D+QjoL5OtOaG/QnwYbLZmZjrjCgpyItesQQeaTJMPBQL65Kmvp83l+qu5tfUzN3z1BHrLjYsY0F/kWDjEypf1FputOPXw4YywnTtDiIlh3uHxMFhV5b999Gjn3cePTwrtu/vwj4D9OrQRrGZ4Y0F09IcZRUVppry8MFJTNUJDYXjYiE5FOz6r9ZER6O4ODtXWjvx06lRP6+BgaT9cOgl9miQlRjTZZY2Pf+uFgoKloXl5ZhwOsNuNiDo74dEjAx4m4litkJZm7Lnl4s3NeOvqAo1Xrtxt7+urFgnPa/K2Ns5sPpiwevX6yMJCjYQEWVkr6VpkHJTE0Ch3GRgQxeMhN5fxxPFElLx6VXxwD7fLRVNLy83rUKKg7y+x2/csXLbMQU6OEc2WLZORqqGAXV2IJAZ4IrNyuqJCj3ikpYU7Dx+2fwGV2k14Lzs21hmdleUgM9OIwmYTD2yGFSvmT9TZs3DiBDx4oHtJFOYOtH8K1doPAn05IsIpvnSQnDxmNAGrzxs2QGHhbOCxY1BeTlCA40MU5w/oqFDQGwoKTqvF4pjQcVRqJkpKYONGOH16NnTTJl3LwBSjPzci7ShX0FqBLldQKcuJQ0rXlSth717Ytm029Nw5SUcJiI5TI20SaJmCXhOo5NNpmwpNTzeuuGPH/JpWVsKRI4atMErpd4F+rKDfSvYlpj3ToBcuwPbtk4Djx+GGCLVuHRw6NLl+8eK0H/5NoCUKegleF6MczJAjNrUTIv3pzBnYt2/2VbOyYP9+2L3b2CsthQMH9Bz8LV/Fo7eroEz7BOIS4Z04qapseGlBVJRJ13PrVsNaSgZ1RVWWqjyVf4uLweuFy5fh1i16h4YCdWKneknfl1ClJ+8jWCzgN1+U+HJttuRIiyWUyEhNT9jQkFFVymbjs3KGKttnz/D4fCPfeL39Aq1ySbcS3H0d6gTzK5AojTdf7F/0qt2eJr3ArEsRDDJrKLBcuXdgIHDN7e6tgc+l09X8KyLJrm+in4rcJpEgSfQtyAoPfzc7PT07KSXF6Eoz+6m82rq7aWhvb6sZHnaJll8/lQ4gu09Vt5jWpHdJDGLihNdEY7vFkp9htycGzWb9Gf/YMypu/+io1tTZ6W3w+RqqxSuy1DoOhDn+TtQQMyUthOXSY5fKj5glNs0/Bg4asyYF6pay/PO5AfQx5e/kf+PpfWJwTbxKAAAAAElFTkSuQmCC' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAEQklEQVR42n2UbUzVZRjGf+eFEIQUDjWI5rAOMlNRGIu1XjeZzTnN2fyQUMRWOy6KtWjT+cGYH3LZ6oOzWEqMBayVisTcFJ2ITjLQ4Ru5qeQYnQPIiygCR97O6Xr+ByQVfLZn/+d5/s99Pfd9X9d925hx5DuhMQZSUiDhJeh5Bm6HQdQIjPwLbVeg/R/wD8FQ8FFr2+OA0QL44E1IXwcLMgQaC2MOgemuPyDwcfB1wNXTcL5G87yMBp8AmrEYPs+12bLXrFrFAl2f29eH/eE7ftm0j8L1e9ByDZp/hwOadM4AullhFhbk5LjXeTzECcxWXo69qgqCCjAmBpvdTtDvh+FhdHJbNucm4KLScKkSfi2dAp4EdSrkXwo9nvdyd+7k2cZGxuvrcSijjrY2qJTJnTswfz5ERMDAAEGfj4mJCb/A64TReF3fH6ChTGDDOlikfL2yPi2trOjwYVI6Ownm5+OQkUMPkJMDhw5BbS20tip4eToh/4ZEkR4cHxzsFXCtTs78BaXbYPSsQJfHKezvSkreX79kCZFFRRaA06GnVq+G/fthzhzo74fToqapCW7cgFu3lABloKUFEdconIY+KCmGjm+0ef012LfP40lZZC7V1WFzu7EtXRoKOUP8b906nfn796071gOG9+ZmAv39Pv2pEXm1f8Ixj0BzP4ayHZs2EZ+URCAxEbvxcOFCOHUK9u6FPXssoh4ahjxDYnU1VFQgqVUJq74dfvpEi+xtyckVX+hlV3y8+Tktobt3weQ1NRX06Kzj6FECckRYRV2y2K7F2q8yM2s+O3IEl7wJ/l9mJo8GdMWK2UG7uqw7gd27b8quVJn+focW72xREF+WluLKy7NAH3h68qQoLIQTJx4P3xC2axccPGh21xRhg7Au6oli42lWNhTod3o8JJKWhj0rC8JU6cePh0IvKZkGM3k2e2mZ3l4V8JhqdDAg0DKT05sqggIt3Mthy8/6LlOdS0hJOgu3vF25UpyquiMjQw+IEMO2BeRy6Va4Ja+A1yssqsX+AT157lMBvBolL6XODR9C8tPGW40w05+Kpbr0dMVRAMq55b0UQkICGN86OgjKYwn/N+E0ye+yHyXEbydJWfaGTL+Gl6XK53UWa9+4EacJ3Yj/8uWQZ2Yfq541ogaoigteuGCEL9Fy1nwbNLebzRTTc9VQPoLMzeqhbpVtQKHZZKx09NojI+MsBTidBO+pN3m9BHt6jIf1IvaKMM78rbW87K6crP0H4zkB50lAEk/yCxKBGnWs/qfaoqJCeTQehoZPYM2aV3XabNqfst1arh/dMzVpKWDNu0qH5otqhYnzBCw6wieVNmS6m8B8KlbvgCTUEuqnvX9MAc7S+RHX0cre4rfl9Vvq/qIm4ilRI9QRAXqH1aBFd4ty2H1M9y+ZkJ/Q+adGtM7Hw0MpIXnyK+CxUVNEmmqCAXWRgN+0gUet/wNAL5t/cJT8RAAAAABJRU5ErkJggg=='; } toggleImage(); Services.prefs.addObserver(s, toggleImage, false); addDestructor(()=> Services.prefs.removeObserver(s, toggleImage) ); gBrowser.stop(gBrowser.selectedTab); gURLBar.inputField.focus(); gURLBar.inputField.editor.selectAll(); } }; this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() }; this.tooltipText="ЛКМ: Перейти|Обновить\nПКМ: Стоп-выделить"; var style = custombutton.buttonGetHelp(self).replace(/id/g, _id); var uri = makeURI('data:text/css,'+ encodeURIComponent(style)); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, 0);
Отредактировано solombala (05-08-2019 08:48:13)
Отсутствует
Ребят,киньте пожалуйста сылочки где можно прочитать инструкцию по установки Custom Buttons для FF68.
И где можно скачать сам Custom Buttons и конфиги.
И ДомИнспектор.
И АтрибутИнспектор.
Перехожу с FF53 на последний.
Не совсем понятно что именно ставить:
custom_buttons-0.0.7.0.0.5-fx-paxmod.xpi
custom_buttons-0.0.7.0.0.5-fx-bootstrap.xpi
Отсутствует
questman
Описание исходной концепции https://forum.mozilla-russia.org/viewto … 88#p764788
Далее листаешь и просматриваешь посты Dumby
Отредактировано Garalf (04-08-2019 16:38:10)
Отсутствует
questman добавлю.
https://forum.mozilla-russia.org/viewto … 43#p720043
https://forum.mozilla-russia.org/viewto … 79#p771479
Отредактировано func4ptch4 (04-08-2019 17:03:58)
Отсутствует
Приветствую!
Кто нибудь подскажите можно ли оживить следующие строчки:
gBrowser.selectedTab = gBrowser.mTabContainer.advanceSelectedTab(-1,true); На предыдущую вкладку
gBrowser.selectedTab = gBrowser.mTabContainer.advanceSelectedTab(1,true); На следующую вкладку
gBrowser.selectedTab = gBrowser.mTabContainer.childNodes[1]; На вторую вкладку слева
gBrowser.selectedTab = gBrowser.mTabs[gBrowser.mTabs.length - 1]; На последнюю вкладку справа
addEventListener("mouseup",(e)=>{e.button==1 && goDoCommand("cmd_copy")},false,gBrowser); СКМ копировать
А так же есть ли рабочий код для:
1.При открытии вкладки размещать её справа от текущей.
2.При закрытии вкладки перейти на левую.
Заранее благодарен!
Отредактировано questman (07-08-2019 18:34:37)
Отсутствует
Dumby
Такая проблема. Нужен код - команда на последнюю вкладку , зачем? Сессию стереть. Хотя бы просто команду - убрать посл. сессию.
Почему?https://s18.directupload.net/images/190807/tke86vpk.png ...Заманала эта показуха , нет ничего ,кроме посл. вкладки, а сессию показывает...
Как бы при закрытии всех вкладок - и сессия бы убралась? Не, не пойдет...Надо другое убирать, при запуске опять тянет пустую вкладку.
Ладно, нужен просто код -"закрыть все вкладки"
Отредактировано solombala (07-08-2019 22:42:57)
Отсутствует
Заманала эта показуха , нет ничего ,кроме посл. вкладки, а сессию показывает...
Непонятно чем не угодила последняя вкладка,
но если так раздражает, тогда скрой показуху
(popup => addEventListener("popupshowing", function ps() { removeEventListener("popupshowing", ps, false, popup); var st = Cu.import("resource:///modules/sessionstore/SessionStore.jsm", {}) .LastSession.getState(); if (st) st = st.windows.length > 1 || st.windows[0].tabs.length > 1 /* || st.windows[0].tabs[0].entries.length > 1 || st.windows[0].tabs[0].entries[0].url != "some url"; */ if (st) return; var menuitem = popup.querySelector("#historyRestoreLastSession"); menuitem.hidden = true; addDestructor(() => menuitem.hidden = false); }, false, popup || 1))(document.getElementById("goPopup"));
Отсутствует
DumbyНе срабатывает в 68....? Может просто код- "закрыть все вкладки" , а туда код на вкл. батника. Второе у меня есть.
не угодила " восстановить сессию" , ну нет там никакой сессии, так какого рожна показывать?
Короче, если Ваш код не того, нужен код "закрыть все вкладки" , но и этого маловато, нет ли возможности иметь код, который отменит этот:
var closer = { observe: function(subject, topic, data) { if ( data == "shutdown" ){ var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath("D:\\iceweasel\\app\\profile\\s.vbs"); file.launch(); } } }; Services.obs.addObserver(closer, "quit-application", false);
Отредактировано solombala (08-08-2019 10:37:49)
Отсутствует
На большее не хватило...Надо бы наоборот,второй код - да? нет?
/*CODE*/ // Закрыть все [h]вкладки[/h] custombuttons.confirmBox(null, "Закрыть все " + [...gBrowser.tabs].length + " вкладки ?", "Да", "Отмена") && [...gBrowser.tabs].forEach((tab)=> gBrowser.removeTab(tab)); // Закрыть сессию... var closer = { observe: function(subject, topic, data) { if ( data == "shutdown" ){ var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath("D:\\iceweasel\\app\\profile\\s.vbs"); file.launch(); } } }; Services.obs.addObserver(closer, "quit-application", false);
Отредактировано solombala (08-08-2019 19:15:32)
Отсутствует
Надо бы наоборот,второй код - да? нет?
Ну, по «quit-application» наверно уже поздновато для confirmBox'а,
пробуй какой-нибудь топик пораньше, например типа
((topic, id) => { var getObserver = () => Array.from(Services.obs.enumerateObservers(topic)) .find(({wrappedJSObject: o}) => o && id in o); addDestructor(reason => { if (reason[5] != "e") return; var obs = getObserver(); obs && Services.obs.removeObserver(obs, topic); }); getObserver() || Services.obs.addObserver({ [id]: true, __proto__: null, observe(cancelQuit, t, data) { data == "restart" || cancelQuit.data || this[["yes", "cancel", "no"][ custombuttons.confirmBox3("Title", "Message", "Yes", "Cancel", "No") ]](cancelQuit); }, yes() { // Do something if "Yes" }, no() { // Do something if "No" }, cancel(cancelQuit) { cancelQuit.data = true; alert("Abort Quit Application"); } }, topic, false); })("quit-application-requested", `${_id}:quitApplicationRequestedObserver1`);
Отсутствует
Dumby
Извиняюсь, не так задача поставлена. Надо, чтобы второй код не исполнялся без первого.
// Закрыть сессию... var closer = { observe: function(subject, topic, data) { if ( data == "shutdown" ){ var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath("D:\\iceweasel\\app\\profile\\s.vbs"); file.launch(); } } }; Services.obs.addObserver(closer, "quit-application", false);
Отсутствует
Возможна ли для 68… Преобразование из латиницы в кириллицу и наоборот?
Отсутствует
vitalii201вот здесь есть кнопка преобразования из en в ru и наоборот, в коде во втором столбце напротив русских букв замени символы на те, которые у тебя есть в старом коде.
Отсутствует
Andrey_Krropotkin, спасибо!
Отсутствует
Типа, if - первый код ОК! , тогда и этот второй проходит
Что-то мне эта идея не нравится. А если во вкладках
какое-нибудь добро с beforeunload и передумаешь.
Или если руками всё закрыто, то не надо что ли.
Вместо простого и безопасного скрытия неугодных элементов,
ты меня склоняешь «Сессию стереть» при выходе.
Нет, ну могу попробовать сочинить какую-нибудь стиралку, но не советую.
((topic, id) => { var obs, getObserver = () => { for(var o of Services.obs.enumerateObservers(topic)) { var res = o.wrappedJSObject; if (res && id in res) return res; } } addDestructor(reason => { if (reason[5] != "e") return; var obs = getObserver(); obs && obs.destroy(); }); (obs = getObserver()) || Services.obs.addObserver(obs = { [id]: true, __proto__: null, destroyed: false, destroy() { Services.obs.removeObserver(this, topic); this.destroyed = true; }, get wins() { return Array.from(Services.wm.getEnumerator("navigator:browser")) .filter(win => win.toolbar.visible); }, observe(cancelQuit, t, data) { data != "restart" && !cancelQuit.data && this.onQuit(true); }, handleEvent() { this.destroyed || this.onQuit(); }, onQuit(fromObs) { var {wins} = this, multi = wins.length > 1; if (multi) return fromObs && this.destroy(); this.destroy(); var {tabs} = wins[0].gBrowser; if (tabs.length > 1 ) return; var es = JSON.parse(SessionStore.getTabState(tabs[0])).entries; es.length == 1 && wins[0].isBlankPageURL(es[0].url) && this.erase(); }, erase() { Services.obs.notifyObservers(null, "browser:purge-session-history"); Cu.import("resource:///modules/sessionstore/SessionFile.jsm", {}) .SessionFileInternal.write = () => {}; } }, topic, false); addEventListener("DOMWindowClose", obs); })("quit-application-requested", `${_id}:quitApplicationRequestedObserver1`);
Отсутствует
Приветствую!
Образовался вопрос.Есть ли возможность при помощи CustomButtons кода запретить(как это сказать!?) открепление вкладок
от основного окна.
Попробую пояснить.
Когда у тебя открыто множество вкладок и ты прыгаешь по ним щёлкая мышкой с удивлением замечаешь,что образовались новые окна.
Это происходит потому что во время щелчка мыши иногда бывают микро движения с зажатой левой кпокой.
А новому FireFox достаточно несколько пикселей чтобы сработало событие открепления.В FireFox53 например такого не было.
Заранее спасибо!
Отсутствует
questman
Может что-нибудь простенькое подойдёт
((obj, key) => { var meth = obj[key], func = meth.bind(obj); obj[key] = (...args) => new Error().stack.includes("dragend") ? null : func(...args); addDestructor(() => obj[key] = meth); })(gBrowser, "replaceTabsWithWindow");
Отсутствует
questman
Может что-нибудь простенькое подойдётскрытый текстВыделить кодКод:
((obj, key) => { var meth = obj[key], func = meth.bind(obj); obj[key] = (...args) => new Error().stack.includes("dragend") ? null : func(...args); addDestructor(() => obj[key] = meth); })(gBrowser, "replaceTabsWithWindow");
Это просто шикарно!Всё работает прекрасно.
Спасибо!
Кстати благодаря этому обнаружил для себя новую функцию связанную со вкладками.
Если вкладка одна, то можно дёргая её мышкой позиционировать окно браузера по левую
или по правую сторону.Вот так прикол, только что узнал!
Отредактировано questman (11-08-2019 00:38:25)
Отсутствует
Dumby
Вопрос...
Отредактировано solombala (12-08-2019 10:35:26)
Отсутствует
solombala
Вот вроде подробнее чем обычно расписано, но всё равно не улавливаю.
Какая-то несвязанная последовательность в вопросе.
Скажем так: распаковал Iceweasel_68_x32.rar в субпапку на диске Цэ,
жму кнопку — нормально всё алертится.
var nir = Services.dirsvc.get("GreD", Ci.nsIFile); nir.append("nir"); alert( [...nir.directoryEntries].map(file => file.path).join("\n") );
Отсутствует
Dumby
Если это не использовать , то и проблем нет. Этот код в кн. "Очистка памяти" и как ? Как без привязки к диску?
Отредактировано solombala (12-08-2019 13:25:52)
Отсутствует
У тебя берется путь к профилю и....
var file = Services.dirsvc.get('ProfD', Ci.nsIFile);
.... никак не используется.
file.initWithPath("D:\\iceweasel\\app\\nir\\d.vbs");
let prof = Services.dirsvc.get('ProfD', Ci.nsIFile); // нашел путь к профилю prof.initWithPath("prof.path + "\\nir\\d.vbs"); // в профиле лежит папка nir где лежить нужный файлег prof.launch();
Там папка NIR участвует и не только...Какая , к черту, портатабельность? Никакая...Плюс, в самих vbs дергается memreduct.exe , она тоже в папке и к профилю не привязана... Короче, сижу на ж@пе ровно и не дергаюсь..
Зачем дважды подряд вызывать разные скрипты, если логично записать вызов второго скрипта в конец первого.
Все переменные можно в самом скрипте находить и присвоить. яхз как оно там в VBS, но в cmd\bat определить где лежить выполняемый скрипт
можно через %~dp0 .
Ну а, у VBS возможностей куда больше чем в cmd/bat и есть не один способ узнать, откуда запущен скрипт.
Отредактировано mokujin (12-08-2019 20:22:54)
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует