>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Поддержка пользователей http://forum.mozilla-russia.org/viewforum.php?id=26 >Тормоза с прорисовкой жестов Firegestures http://forum.mozilla-russia.org/viewtopic.php?id=54894 |
Ferguss114 > 10-05-2012 11:51:22 |
У кого стоит Firegestures прошу проверить и подтвердить (или опровергнуть) дикие тормоза с прорисовкой жестов Firegestures |
brici > 10-05-2012 12:06:36 |
- Было такое в купе с All-in-One Sidebar 0.7.15.. С версией 0.7.16 всё нормально. |
Ferguss114 > 10-05-2012 12:33:10 |
All-in-One Sidebar у меня не стоит. Стоят вот какие раширения скрытый текст Custom Buttons 0.0.5.5 true custombuttons@xsms.org FireGestures 1.6.16 true firegestures@xuldev.org Flashblock keyconfig S3.Google Translator IDM CC Неужели это из-за какого-то из них? |
brici > 10-05-2012 12:46:28 |
- Предрасполагаю да. Вернись в старые версии что обновлял недавно. |
Пандёнок > 10-05-2012 13:58:21 |
brici пишет
Ничего хуже не придумали? 10-05-2012 14:01:11 |
Ferguss114 > 10-05-2012 15:16:59 |
Отключил все расширения (кроме конечно Firegestures) - тормоза остались. На ней жесты не тормозят. Чудеса! Бог с ним, я всё равно потом ставлю начальную страницу abot:blank, просто хотелось докопаться до причины. Что интересно: я сравниваю 12 и 13 версии с 3.6 и выходит, что 3.6 с порядком засранным профилем работает быстрее, чем эти с чистым профилем (только дополнения, набор одинаковый). Кстати, спрошу, где отключается загрузка вкладок по требованию? |
winxpforever > 10-05-2012 16:43:40 |
Ferguss114 пишет
Инструменты - Настройки - Основные; если при запуске Firefox выбрать "Показать окна и вкладки, открытые в прошлый раз", будет доступна опция "Не загружать вкладки без запроса". Ну или browser.sessionstore.restore_on_demand поставить в false. |
brici > 10-05-2012 17:50:54 |
Пандёнок |
bunda1 > 10-05-2012 18:31:03 |
У меня с FF15 на дефолтной начальной странице с жестами мыши проблем нет, но я не использую Firegestures. Жести мыши запускаю расширением Custom Buttons. |
Ferguss114 > 10-05-2012 18:59:30 |
bunda1 пишет
Как это? |
bunda1 > 10-05-2012 22:12:38 |
Ferguss114 скрытый текст Выделить код Код:// Mouse Gestures................................ var ucjsMouseGestures={ // options enableWheelGestures: true, enableRockerGestures: true, enablePopupGestures: true, _lastX: 0, _lastY: 0, _directionChain: '', _isMouseDownL: false, _isMouseDownR: false, _hideFireContext: false, //for windows _shouldFireContext: false, //for linux POPUP_ID: 'GesturePopup', GESTURES:{ 'L':{name:'History Back',cmd:function(){document.getElementById("Browser:Back").doCommand();}}, 'R':{name:'History Forward',cmd:function(){document.getElementById("Browser:Forward").doCommand();}}, //'LUL':{name:'Fast Backward',cmd:function(){if(gBrowser.sessionHistory.index>0)gBrowser.gotoIndex(0);}}, //'RUR':{name:'Fast Forward',cmd:function(){var nav=gBrowser.webNavigation;nav.gotoIndex(nav.sessionHistory.count-1);}}, 'U':{name:'Reload',cmd:function(){document.getElementById("Browser:Reload").doCommand();}}, 'UD':{name:'Stop',cmd:function(){document.getElementById("Browser:Stop").doCommand();}}, //'UDU':{name:'Reload Skip Cache',cmd:function(){document.getElementById("Browser:ReloadSkipCache").doCommand();}}, //'RU':{name:'Home',cmd:function(){document.getElementById("Browser:Home").doCommand();}}, //'ULU':{name:'Go Up Directory',cmd:function(){var uri=gBrowser.currentURI;if(uri.path=="/")return;var pathList=uri.path.split("/");if(!pathList.pop())pathList.pop();loadURI(uri.prePath+pathList.join("/")+"/");}}, 'LDL':{name:'Secure Login',cmd:function(){secureLogin.login();}}, 'RDR':{name:'Minimize Window',cmd:function(){window.minimize();}}, 'DRU':{name:'Maximize or Resore Window',cmd:function(){window.windowState==1?window.restore():window.maximize();}}, 'DU':{name:'Close Window',cmd:function(){window.close();}}, //'URD':{name:'Full Screen',cmd:function(){document.getElementById("View:FullScreen").doCommand();}}, //'DU':{name:'Undo Tab',cmd:function(){document.getElementById('History:UndoCloseTab').doCommand();}}, //'LR':{name:'Open New Tab',cmd:function(){document.getElementById("cmd_newNavigatorTab").doCommand();document.getElementById("searchbar").focus();goDoCommand('cmd_selectAll');}}, 'D':{name:'Close Tab',cmd:function(){gBrowser.removeCurrentTab();}}, //'RL':{name:'Duplicate Tab',cmd:function(){openNewTabWith(gBrowser.currentURI.spec,null,null,null,false);}}, //'L<R':{name:'Previous Tab',cmd:function(){gBrowser.mTabContainer.advanceSelectedTab(-1,true);}}, //'L>R':{name:'Next Tab',cmd:function(){gBrowser.mTabContainer.advanceSelectedTab(+1,true);}}, 'RU':{name:'Page Top',cmd:function(){goDoCommand('cmd_scrollTop');}}, 'RD':{name:'Page Bottom',cmd:function(){goDoCommand('cmd_scrollBottom');}}, //'LDR':{name:'Show/Hide Upper Toolbars',cmd:function(){var menubar=document.getElementById("toolbar-menubar");var bmToolbar=document.getElementById("PersonalToolbar");menubar.collapsed=!menubar.collapsed;if(!bmToolbar.collapsed)bmToolbar.collapsed=true;}}, 'DLU':{name:'Toggle Addon Bar',cmd:function(){toggleAddonBar();}}, //'URD':{name:'Show/Hide Bookmarks Sidebar',cmd:function(){toggleSidebar("viewBookmarksSidebar");}}, 'RUL':{name:'Page Info',cmd:function(){window.openDialog('chrome://browser/content/pageinfo/pageInfo.xul');;}}, 'RDL':{name:'Find',cmd:function(){if ("isFindBarVisible" in gFindBar) { gFindBar.isFindBarVisible() ? gFindBar.closeFindBar() : gFindBar.onFindCmd();} else {gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();};}}, 'ULD':{name:'Show/Hide BookmarksToolbar',cmd:function(){var toolbar = document.getElementById("PersonalToolbar"); toolbar.collapsed = !toolbar.collapsed; document.persist(toolbar.id, "collapsed");;}}, //'W-':{name:'[Popup] Histories',cmd:function(self,event){self._buildPopup(event,"HistoryPopup");}}, 'RLRL':{name:'[Popup]Search Engines',cmd:function(self,event){self._buildPopup(event,"WebSearchPopup");}}, 'UR':{name:'[Popup] All Tabs',cmd:function(self,event){self._buildPopup(event,"AllTabsPopup");}}, //'LR':{name:'[Popup] Closed Tabs',cmd:function(self,event){self._buildPopup(event,"ClosedTabsPopup");}}, 'W-':{name:'Zoom+',cmd:function(){document.getElementById("cmd_fullZoomEnlarge").doCommand();}}, 'W+':{name:'Zoom-',cmd:function(){document.getElementById("cmd_fullZoomReduce").doCommand();}}, 'UDU':{name:'Zoom Reset',cmd:function(){document.getElementById("cmd_fullZoomReset").doCommand();}}, 'DUD':{name:'Restart Firefox',cmd:function(){const nsIAppStartup=Components.interfaces.nsIAppStartup;var os=Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);var cancelQuit=Components.classes["@mozilla.org/supports-PRBool;1"].createInstance(Components.interfaces.nsISupportsPRBool);os.notifyObservers(cancelQuit,"quit-application-requested",null);if(cancelQuit.data)return;os.notifyObservers(null,"quit-application-granted",null);var wm=Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);var windows=wm.getEnumerator(null);while(windows.hasMoreElements()){var win=windows.getNext();if(("tryToClose"in win)&&!win.tryToClose())return;}Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(nsIAppStartup).quit(nsIAppStartup.eRestart|nsIAppStartup.eAttemptQuit);}}, 'DLUD':{name:'[AdBlock]Open blockable items',cmd:function(){document.getElementById("abp-command-sidebar").doCommand();;}}, 'RUD':{name:'[Noscript] Allow All This Page',cmd:function(){noscriptOverlay.allowPage(true);}}, 'RDU':{name:'[Noscript] Allow Page Temporarily',cmd:function(){noscriptOverlay.allowPage();}}, 'RDUD':{name:'[Noscript] Revoke Page Temporarily',cmd:function(){noscriptOverlay.revokeTemp();}}, 'RUDU':{name:'Clear Privacy Infomation/Delete flash cookies',cmd:function(){setTimeout(function(){ document.getElementById("Tools:Sanitize").doCommand();},0) var dir = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("Home", Components.interfaces.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); dir.remove(true);;}}, 'LURD':{name:'To load the content of the current tab into the sidebar.',cmd:function(){if (document.getElementById('sidebar-title').getAttribute('value') == gBrowser.selectedTab.label) { toggleSidebar(); } else if (/\.xul$/.test(gBrowser.currentURI.spec)) { toggleSidebar('viewWebPanelsSidebar', true); document.getElementById('sidebar').setAttribute('src', gBrowser.currentURI.spec); document.getElementById('sidebar-title').setAttribute('value', gBrowser.selectedTab.label); } else{ openWebPanel(gBrowser.selectedTab.label, gBrowser.currentURI.spec);}}}, 'LDRU':{name:'Notepad',cmd:function(){ var link="data:text/html;base64,PFRFWFRBUkVBPjwvVEVYVEFSRUE+DQo8c3R5bGU+aHRtbCB7YmFja2dyb3VuZC1jb2xvcjpibGFjaztvdmVyZmxvdzpoaWRkZW47fXRleHRhcmVhIHtiYWNrZ3JvdW5kOiMzODM4Mzg7b3ZlcmZsb3cteTphdXRvO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7LW1vei1ib3JkZXItcmFkaXVzOjVweDtib3JkZXI6IDVweCBpbnNldCB3aGl0ZTtjb2xvcjogd2hpdGU7fTwvc3R5bGU+"; var label="Notepad"; gBrowser.selectedTab = gBrowser.addTab(link);}}, 'LURDL':{name:'Open this page with Internet Explorer',cmd:function(){const IE_PATH = "C:\\Program Files\\Internet Explorer\\iexplore.exe"; var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath(IE_PATH); if (!file.exists()) { alert("File does not exist: " + IE_PATH); return;} var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); try { var args = [window.content.location.href]; process.init(file); process.run(false, args, args.length);} catch (ex) { alert("Failed to execute: " + IE_PATH);;}}}, 'LUR':{name:'Close Sidebar',cmd:function(){var sidebarBox = document.getElementById("sidebar-box"); if (!sidebarBox.hidden)toggleSidebar(sidebarBox.getAttribute("sidebarcommand"));}}, //'LUR':{name:'Bookmarks Manager',cmd:function(){PlacesCommandHook.showPlacesOrganizer('AllBookmarks');}}, //'ULRLR':{name:'Save page',cmd:function(){document.getElementById("Browser:SavePage").doCommand();}}, //'L>R':{name:'AntiBoss',cmd:function(){return;}}, 'L>R':{name:'AntiBoss',cmd:function(){setTimeout(function() { window.minimize();return; }, 300);stop(event);;}}, 'LUD':{name:'Bookmarks Manager in Tab',cmd:function(){const URL = "chrome://browser/content/places/places.xul"; const IN_NEW_TAB = true; const IN_BACKGROUND = false; if (IN_NEW_TAB) gBrowser.loadOneTab(URL, null, null, null, IN_BACKGROUND, false); else gBrowser.loadURI(URL);}}, 'ULR':{name:'Add Tab in Bookmarks folder',cmd:function(){var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var folderName = "add"; var rootFolder = bmsvc. toolbarFolder; var f = getChildFolder (rootFolder, folderName); if (!f){ bmsvc. createFolder (rootFolder, folderName, bmsvc. DEFAULT_INDEX); f = getChildFolder (rootFolder, folderName); } var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab); bmsvc. insertBookmark (f, br. webNavigation. currentURI, bmsvc. DEFAULT_INDEX, gBrowser. mCurrentTab. label); // var sebp = StarUI. showEditBookmarkPopup; //StarUI. showEditBookmarkPopup = function () {}; //PlacesCommandHook. bookmarkCurrentPage (false, f); //StarUI. showEditBookmarkPopup = sebp; function getChildFolder (parentId, title) {var res = null; try{ var hs = Cc ["@mozilla.org/browser/nav-history-service;1"]. getService (Ci. nsINavHistoryService); var options = hs. getNewQueryOptions (); options. excludeItems = true; var query = hs. getNewQuery (); query. setFolders ([parentId], 1); var result = hs. executeQuery (query, options); var rn = result. root; rn. containerOpen = true; var i, node; for (i = 0; i < rn. childCount; i++) { var node = rn. getChild (i); if (node. title == title){ res = node. itemId; break;}} rn. containerOpen = false; } catch (e) {} return res;} var cbTitle = "Bookmarks folder [add]"; // Title of the sliding alert var cbDesc = "Add Tab in Bookmarks folder"; // Instructions/Info to describe the event custombuttons.alertSlide(cbTitle, cbDesc);;}}, 'ULRL':{name:'Delete Bookmarks',cmd:function(){var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var folderName = "add"; var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var rootFolder = bmsvc. toolbarFolder; var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var f = getChildFolder (rootFolder, folderName); if (f) bmsvc. removeFolderChildren (f) function getChildFolder (parentId, title){ var res = null; try{ var hs = Cc ["@mozilla.org/browser/nav-history-service;1"]. getService (Ci. nsINavHistoryService); var options = hs. getNewQueryOptions (); options. excludeItems = true; var query = hs. getNewQuery (); query. setFolders ([parentId], 1); var result = hs. executeQuery (query, options); var rn = result. root; rn. containerOpen = true; var i, node; for (i = 0; i < rn. childCount; i++){ var node = rn. getChild (i); if (node. title == title){ res = node. itemId; break;}} rn. containerOpen = false;} catch (e) {} return res;} var cbTitle = "Bookmarks folder [add]"; // Title of the sliding alert var cbDesc = "Delete Bookmarks"; // Instructions/Info to describe the event custombuttons.alertSlide(cbTitle, cbDesc);;}}, 'URL':{name:'Add all Tabs in Bookmarks folder',cmd:function(){var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var folderName = "click"; var rootFolder = bmsvc. toolbarFolder; function getTabsURIs () { var tabList = []; var seenURIs = []; var br, webNav, uri; var tabs = getBrowser (). mTabs; for (var i = 0; i < tabs. length; ++i){ br = gBrowser. getBrowserForTab (tabs [i]); var webNav = br. webNavigation; uri = webNav. currentURI; if (uri. spec in seenURIs) continue; seenURIs [uri. spec] = true; LOG ("uri: " + uri + ", label = " + tabs [i]. label); tabList. push ({ uri: uri, label: tabs [i]. label });} return tabList;} var f = getChildFolder (rootFolder, folderName); if (!f){ bmsvc. createFolder (rootFolder, folderName, bmsvc. DEFAULT_INDEX); f = getChildFolder (rootFolder, folderName);} var uris = getTabsURIs (); var ios = Components. classes ["@mozilla.org/network/io-service;1"]. getService (Components. interfaces. nsIIOService); var uri; bmsvc. runInBatchMode({ runBatched: function (data){ for (var i = 0; i < uris. length; i++) bmsvc. insertBookmark (f, uris [i]. uri, bmsvc. DEFAULT_INDEX, uris [i]. label); var cbTitle = "Bookmarks folder [click]"; // Title of the sliding alert var cbDesc = "Add all Tabs in Bookmarks folder"; // Instructions/Info to describe the event custombuttons.alertSlide(cbTitle, cbDesc);}}, null); function getChildFolder (parentId, title){ var res = null; try{ var hs = Cc ["@mozilla.org/browser/nav-history-service;1"]. getService (Ci. nsINavHistoryService); var options = hs. getNewQueryOptions (); options. excludeItems = true; var query = hs. getNewQuery (); query. setFolders ([parentId], 1); var result = hs. executeQuery (query, options); var rn = result. root; rn. containerOpen = true; var i, node; for (i = 0; i < rn. childCount; i++){ var node = rn. getChild (i); if (node. title == title){ res = node. itemId; break;}} rn. containerOpen = false; } catch (e) {} return res;};}}, 'URLR':{name:'Delete Bookmarks folder ',cmd:function(){var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var folderName = "click"; var rootFolder = bmsvc. toolbarFolder; var bmsvc = Components. classes ["@mozilla.org/browser/nav-bookmarks-service;1"]. getService (Components. interfaces. nsINavBookmarksService); var f = getChildFolder (rootFolder, folderName); if (f) bmsvc. removeItem (f); function getChildFolder (parentId, title){ var res = null; try{ var hs = Cc ["@mozilla.org/browser/nav-history-service;1"]. getService (Ci. nsINavHistoryService); var options = hs. getNewQueryOptions (); options. excludeItems = true; var query = hs. getNewQuery (); query. setFolders ([parentId], 1); var result = hs. executeQuery (query, options); var rn = result. root; rn. containerOpen = true; var i, node; for (i = 0; i < rn. childCount; i++){ var node = rn. getChild (i); if (node. title == title){ res = node. itemId; break;}} rn. containerOpen = false;} catch (e) {} return res;} var cbTitle = "Bookmarks folder [click]"; // Title of the sliding alert var cbDesc = "Delete Bookmarks folder"; // Instructions/Info to describe the event custombuttons.alertSlide(cbTitle, cbDesc);;}}, 'LDU':{name:'Open Add-on Manager',cmd:function(){BrowserOpenAddonsMgr();}}, 'LD':{name:'Extensions Tab',cmd:function(){const URL = "chrome://mozapps/content/extensions/extensions.xul"; const IN_NEW_TAB = true; const IN_BACKGROUND = false; if (IN_NEW_TAB) gBrowser.loadOneTab(URL, null, null, null, IN_BACKGROUND, false); else gBrowser.loadURI(URL);}}, 'LU':{name:'Bookmarks Tab',cmd:function(){ var newTab = document.getElementById("content").addTab("chrome://browser/content/bookmarks/bookmarksPanel.xul"); getBrowser (). selectedTab = newTab;}}, 'UL':{name:'Open file',cmd:function(){BrowserOpenFileWindow();}}, 'ULRLR':{name:'Open folder',cmd:function(){setTimeout(function(aEvent) { var nsIFilePicker = Components.interfaces.nsIFilePicker; var dp = Components.classes["@mozilla.org/filepicker;1"] .createInstance(nsIFilePicker); dp.init(window, "", dp.modeGetFolder); if(dp.show() == dp.returnCancel) return; openUILink(dp.fileURL.spec, aEvent, false, true); }, 0);;}}, 'DRLR':{name:'close all tabs on right',cmd:function(){var aTab = getBrowser().mCurrentTab; var tabPos = aTab._tPos; var childNodes = getBrowser().mTabContainer.childNodes; if (tabPos < childNodes.length - 1) { for (var i = childNodes.length - 1; i >= tabPos; --i) { if (childNodes[i] != aTab) getBrowser().removeTab(childNodes[i]);}}}}, 'DLRL':{name:'close all tabs on left',cmd:function(){var aTab = getBrowser().mCurrentTab; var tabPos = aTab._tPos; var childNodes = getBrowser().mTabContainer.childNodes; if (tabPos > 0) { for (var i = tabPos; i >= 0; --i) { if (childNodes[i] != aTab) getBrowser().removeTab(childNodes[i]);}}}}, 'DRLRL':{name:'close other Window',cmd:function(){ var windowManager = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator); var enumerator = windowManager.getEnumerator(null); var thisWindow = windowManager.getMostRecentWindow(null); while (enumerator.hasMoreElements()) {var thatWindow = enumerator.getNext(); if (thisWindow != thatWindow) {thatWindow.close();}};}}, 'DLRLR':{name:'Tabs Sort',cmd:function(){var map = { __proto__: null }; var terms = []; Array.forEach( gBrowser.tabContainer.childNodes, function(tab) { var uri = tab.linkedBrowser.currentURI.spec; terms.push(uri); if(uri in map) map[uri].push(tab); else map[uri] = [tab];}); terms.sort().forEach(function(uri, index) { var tab = map[uri].shift(); //LOG(uri + " => " + index); gBrowser.moveTabTo(tab, index);});}}, 'DRL':{name:'Open last Tab',cmd:function(){var lastTab = gBrowser.mTabs[gBrowser.mTabs.length - 1]; gBrowser.selectedTab = lastTab;}}, 'DLR':{name:'Open first Tab',cmd:function(){gBrowser.selectedTab = gBrowser.mTabContainer.childNodes[0];}}, 'DR':{name:'Page Right',cmd:function(){content.scrollTo(content.scrollMaxX, content.scrollY);;}}, 'DL':{name:'Page Left',cmd:function(){content.scrollTo(0, content.scrollY);;}}, 'LDRL':{name:'Show cookies',cmd:function(){window.open('chrome://browser/content/preferences/cookies.xul', 'Browser:Cookies', 'chrome,resizable=yes');;}}, 'LDR':{name:'Menege cookies',cmd:function(){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);}}, 'URD':{name:'Show / Hide navigator-toolbox',cmd:function(){ var a = document.getElementById("nav-bar"); a.collapsed = !a.collapsed;}}, 'LR':{name:'Translate',cmd:function(){var t = content.getSelection().toString(); if(t) {gBrowser.selectedTab = gBrowser.addTab("http://translate.google.com/translate_t?hl=ru#auto|ru|"+t);} else { gBrowser.loadURI("http://translate.google.com/translate?u="+encodeURIComponent(getBrowser().currentURI.spec)+"&hl=ru&ie=UTF-8&sl=auto&tl=ru");};}}, 'RL':{name:'Translate selected /page in new tab',cmd:function(){ const UJS_TOOLBAR_ID = "ujs_toolbar"; const UJS_GOOGLE_TRANSLATE_FRAME_ID = "ujs_googletranslateframe"; function cbTranslatorButton (browser) { this. doc = browser. contentDocument; this. win = browser. contentDocument. defaultView; } cbTranslatorButton. prototype = { doc: null, win: null, toolbar: null, clse: null, frame: null, grabX: 0, origX: 0, grabY: 0, origY: 0, handleEvent: function (event) { switch (event. type) { case "mousedown": this. tbOnMouseDown (event); break; case "mousemove": this. tbOnMouseMove (event); break; case "mouseup": this. tbOnMouseUp (event); break; case "click": this. clseOnClick (event); break; case "load": this. frameOnLoad (event); break; default:; } }, tbOnMouseMove: function (event) { this. toolbar. style. left = this. origX + event. clientX - this. grabX + 'px'; this. toolbar. style. top = this. origY + event. clientY - this. grabY + 'px'; }, tbOnMouseUp: function (event) { this. doc. removeEventListener ('mousemove', this, false); this. toolbar. style. zIndex = 9997; }, tbOnMouseDown: function (event) { if (event. target == this. toolbar) { event. preventDefault (); this. toolbar. style. zIndex = 9998; this. grabX = event. clientX; this. grabY = event. clientY; this. origX = parseInt (this. toolbar. style. left); this. origY = parseInt (this. toolbar. style. top); this. doc. addEventListener ('mousemove', this, false); this. doc. addEventListener ('mouseup', this, false); } }, removeEventListener: function (element, eventType, captureFlag) { try { element. removeEventListener (eventType, this, captureFlag); } catch (err) {} }, removeElement: function (element) { try { element. parentNode. removeChild (element); } catch (err) {} }, clseOnClick: function (event) { this. clse. removeEventListener ('click', this, false); this. removeEventListener (this. toolbar, 'mousedown', false); this. removeEventListener (this. doc, 'mousemove', false); this. removeEventListener (this. doc, 'mouseup', false); this. removeEventListener (this. frame, 'load', false); this. removeElement (this. toolbar); this. removeElement (this. frame); this. frame = null; this. clse = null; this. toolbar = null; this. win = null; this. doc = null; }, ujs_createWindow: function (txt) { var doc = this. doc; var win = this. win; var h, w; var txtLen = txt. length; var tbId = UJS_TOOLBAR_ID; if (arguments. length > 2) tbId += arguments [2]; var toolbar = doc. getElementById (tbId); if (toolbar) toolbar. parentNode. removeChild (toolbar); toolbar = doc. createElement ('div'); this. toolbar = toolbar; toolbar. id = tbId; if (arguments. length == 5) { w = arguments [3]; h = arguments [4] } else { h = 15; w = 20; if (txtLen > 2000) { h = 50; w = 66 } else if (txtLen > 250) { h = 25; w = 33 }; h = parseInt (h * win. innerHeight / 30); w = parseInt (w * win. innerWidth / 50) }; var title = (arguments. length > 1) ?arguments [1]: '<a href="http://translate.google.com/" target="_blank" style="text-decoration:none;color:#000099;font:16px Times New Roman;">Google Translate</a>'; toolbar. innerHTML = '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjIyt5EXfQAAAStJREFUOE+1k9tqhDAQhtOHqO37P4E3IlQFQQSvBBVEl1TBVVi1B+1C8XAx3QmNqIVqhBV+DEPmy8z8ycPX9Ruq6kLqqiRHvkfpiUjSMyGUJtB1HfR9D8MwCAlz6voNkEGCIGDJeZ5DURTCatoWNE0D4nk+jOMoDMBD8fDPpoGXu4OyLAPUutV1/N+KcPPNPaY4jidYktwG+hunlLL4ZmsI4EloxhxiGAY4jgNpmm6D8DQEcBj/I8SyrKnSzYr4bDzPm2CKoiwgu1rDTfN2eEWu6y4M2KxoPRNVVRcz4xXvdm0+k/nMwjDc5xraa9v2n5kgwDRNMdfQXtT6Us7jy9Z8n738Iw82O5/hUpag6zqQ0+kVmqZld0NUURSxl48M8v5xZQtZlg8Jc5HxA5fIE73hTda3AAAAAElFTkSuQmCC" title="Close" width="18" height="18"> ' + title + '<div></div>'; toolbar. setAttribute('style', 'position:fixed;background:white;display:block;visibility:hidden;left:0;top:0;height:auto;width:' + w + 'px;font:16px Times New Roman;border:1px solid gray;padding:3px;z-index:9997;overflow:visible;cursor:move;'); toolbar. addEventListener ('mousedown', this, false); var clse = toolbar. firstChild; this. clse = clse; clse. setAttribute ('style', 'float:right;background:white;padding:0;margin:0;border:none;cursor:pointer;'); clse. addEventListener ('click', this, false); var textbar = toolbar. lastChild; textbar. innerHTML = txt; textbar. setAttribute ('style', 'display:block;border:1px solid #aaaaaa;margin:2px 0 0 0;padding:4px;background-color:#fafcfe;font:14px Times New Roman;height:' + h + 'px;width:auto;overflow:auto;cursor:text;'); doc. documentElement. appendChild (toolbar); var halfWidth = parseInt (toolbar. offsetWidth / 2); var strict = doc. compatMode == 'CSS1Compat'; var mX = (strict? doc. documentElement. clientWidth: doc. body. clientWidth) - toolbar. offsetWidth; var mY = (strict? doc. documentElement. clientHeight: doc. body. clientHeight) - toolbar. offsetHeight; var lastClickX = win. cbTranslateButton2X; var lastClickY = win. cbTranslateButton2Y; toolbar. style. left = ((lastClickX < mX + halfWidth)? (lastClickX > halfWidth? (lastClickX - halfWidth): 0): mX) + "px"; toolbar. style. top = ((lastClickY < mY)? lastClickY: mY) + "px"; toolbar. style. visibility = 'visible'; return textbar; }, frameOnLoad: function (event) { var fr = event. currentTarget; fr. removeEventListener ('load', this, false); var tbId = fr. id. substring (UJS_GOOGLE_TRANSLATE_FRAME_ID. length); var toolbar = this. doc. getElementById (UJS_TOOLBAR_ID + tbId); var frdoc = fr. contentDocument; var sl = frdoc.getElementById('nc_sl'), dl = frdoc.getElementById('nc_dl'), tl = frdoc.getElementById('nc_tl'); if(sl && dl && tl){ var status = ((dl.value || sl.value)+' -\u203A '+tl.value).toUpperCase(); }; var a = frdoc. getElementById ('nc_sl'); var title = (a && !/#808080/. test (a. innerHTML))? ' - ' + status: ''; var result = ''; var r = frdoc.getElementById('result_box'), s = frdoc.getElementById('source'), d = frdoc.getElementById('gt-res-dict'); if(r){ var p = r.getElementsByTagName('span'); for(var i = 0, n; n = p[i]; i++){ n.removeAttribute('onmouseover'); n.removeAttribute('onmouseout'); n.setAttribute('style', 'background-color:inherit;color:inherit;font-size:inherit;font-family:serif;'); }; result = r.innerHTML; }; if(s && d && d.getElementsByTagName('ol').length){ var a = d.getElementsByTagName('*'); for(var i = a.length; i--;){ var n = a[i]; switch(n.nodeName.toLowerCase()){ case 'ol': n.setAttribute('style', 'margin:1px 5px;padding:0;'); break; case 'li': n.setAttribute('style', 'margin:0;padding:1px 5px;font:12px Arial;list-style-type:none;float:left;font-weight:bold;'); break; case 'div': n.setAttribute('style', 'margin:0;padding:0 2px;font:12px Arial;white-space:nowrap;'); break; case 'a': case 'h3': n.parentNode.removeChild(n); break; } }; result = '<b><q>'+s.value+'</q></b>'+d.innerHTML; }; var ancor = toolbar. getElementsByTagName ("a") [0]; ancor. innerHTML += title; ancor. nextSibling. innerHTML = result; setTimeout ( function () { fr. parentNode. removeChild (fr); }, 0 ); }, google_translate: function (language) { var doc = this. doc; var win = this. win; var t = document. commandDispatcher. focusedWindow. getSelection (). toString (); var lng = (win. navigator. language == 'ru')? 'ru': 'en'; var encodeBase64 = function(str){ var chr1, chr2, chr3, rez = '', arr = [], i = 0, j = 0, code = 0; var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.split(''); while(code = str.charCodeAt(j++)){ if(code < 128){ arr[arr.length] = code; } else if(code < 2048){ arr[arr.length] = 192 | (code >> 6); arr[arr.length] = 128 | (code & 63); } else if(code < 65536){ arr[arr.length] = 224 | (code >> 12); arr[arr.length] = 128 | ((code >> 6) & 63); arr[arr.length] = 128 | (code & 63); } else{ arr[arr.length] = 240 | (code >> 18); arr[arr.length] = 128 | ((code >> 12) & 63); arr[arr.length] = 128 | ((code >> 6) & 63); arr[arr.length] = 128 | (code & 63); } }; while(i < arr.length){ chr1 = arr[i++]; chr2 = arr[i++]; chr3 = arr[i++]; rez += chars[chr1 >> 2]; rez += chars[((chr1 & 3) << 4) | (chr2 >> 4)]; rez += chars[chr2 === undefined ? 64 : ((chr2 & 15) << 2) | (chr3 >> 6)]; rez += chars[chr3 === undefined ? 64 : chr3 & 63]; }; return rez; }; if (t && location. hostname != 'sitegetter.net') { this. ujs_createWindow ( (lng == 'ru'? '\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u0438\u043C': 'Подождите идет перевод' ) + '\u2026', '<a href="http://translate.google.com/" target="_blank" style="text-decoration:none;color:#000099;font:16px Times New Roman;">Google перевод</a>', btoa (escape (t)) ); var gtfId = UJS_GOOGLE_TRANSLATE_FRAME_ID; var fr = doc. getElementById (gtfId); if (!fr) fr = doc. createElement ('iframe'); this. frame = fr; fr. setAttribute ('id', gtfId + btoa (escape (t))); fr. setAttribute ('frameborder', '0'); fr. setAttribute ('style', 'width:0px;height:0px;visibility:hidden;position:absolute;left:-999em;'); fr. setAttribute ( 'src', 'http://sitegetter.net/browse.php?u='+encodeBase64('://translate.google.com/translate_t?&hl=ru&text=' + encodeURIComponent (t) + '&langpair=' + language + '&tbb=1&ujs=gtt')+'&b=29&f=norefer&ujs=gtt' ); fr. addEventListener ('load', this, false); doc. documentElement. appendChild (fr); } else { getBrowser (). addTab ( 'http://translate.google.com/translate?u=' + escape (doc. location. href) + '&hl=' + lng + '&langpair=' + language + '&tbb=1' + (doc. charset? '&ie=' + doc. charset: ''), null, null ); } } }; var ct = getBrowser (). selectedTab; if (!ct. cbTranslateButton5) ct. cbTranslateButton5 = []; var translator = new cbTranslatorButton (getBrowser ()); ct. cbTranslateButton5. push (translator); translator. google_translate ("auto|ru");}}, 'LRL':{name:'Open URL from Clipboard',cmd:function(){const IN_NEW_TAB = true; const IN_BACKGROUND = false; var str = readFromClipboard(); if (!str) return; if (IN_NEW_TAB) gBrowser.loadOneTab(str, null, null, null, IN_BACKGROUND, false); else gBrowser.loadURI(str);}}, 'LRLR':{name:'Open selected links',cmd:function(){warn_if_opening_more_than = 16; var browser = getBrowser(); var n_to_open,dl,dll,i; function linkIsSafe(u) { if (u.substr(0,7)=='mailto:' ) return false; if (u.substr(0,11)=='javascript:') return false; return true;} n_to_open = 0; dl = window._content.document.links; dll = dl.length; if (window._content.getSelection && window._content.getSelection().containsNode) { for(i=0; i<dll; ++i) { if (window._content.getSelection().containsNode(dl[i], true) && linkIsSafe(dl[i].href)) { ++n_to_open;} } if (n_to_open && (n_to_open<=warn_if_opening_more_than || confirm('Open ' + n_to_open + ' selected links in new windows?'))) { for(i=0; i<dll; ++i) { if (window._content.getSelection().containsNode(dl[i], true) && linkIsSafe(dl[i].href)) { browser.addTab(dl[i].href);}}}} if (!n_to_open) { /* if no links selected, open all links */ for(i = 0; i < dll; ++i) { if (linkIsSafe(dl[i].href)) ++n_to_open; } if (!n_to_open) alert ('no links'); else { if (confirm('No links selected. Open ' + n_to_open + ' links in new windows?')) { for (i = 0; i < dll; ++i) { if (linkIsSafe(dl[i].href)) { browser.addTab(dl[i].href);}}}}};}}, 'RLR':{name:'Clipboard search(current engine)',cmd:function(){var str = readFromClipboard(); var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission(str, null); gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, true, false);}}, 'UDUD':{name:'Stop Loading All Tabs',cmd:function(){var len = gBrowser.mPanelContainer.childNodes.length; for (var i = 0; i < len; i++) { gBrowser.getBrowserAtIndex(i).stop();}}}, 'URLRL':{name:'Save website favicons',cmd:function(){this.image=document.getElementById("page-proxy-favicon").src; openUILinkIn(this.image,"save");}}, }, init:function(){ var self=this; var events=["mousedown","mousemove","mouseup","contextmenu"]; if(this.enableRockerGestures)events.push("draggesture"); if(this.enableWheelGestures)events.push("DOMMouseScroll"); function registerEvents(aAction,eventArray){ eventArray.forEach(function(aType){ getBrowser().mPanelContainer[aAction+"EventListener"](aType,self,aType=="contextmenu"); }); }; registerEvents("add",events); window.addEventListener("unload",function(){ registerEvents("remove",events); },false); }, handleEvent:function(event){ switch(event.type){ case"mousedown": if(event.button==2){ this._isMouseDownR=true; this._hideFireContext=false; this._startGesture(event); } if(this.enableRockerGestures){ if(event.button==2&&this._isMouseDownL){ this._isMouseDownR=false; this._shouldFireContext=false; this._hideFireContext=true; this._directionChain="L>R"; this._stopGesture(event); }else if(event.button==0){ this._isMouseDownL=true; if(this._isMouseDownR){ this._isMouseDownL=false; this._shouldFireContext=false; this._hideFireContext=true; this._directionChain="L<R"; this._stopGesture(event); } } } break; case"mousemove": if(this._isMouseDownR){ this._hideFireContext=true; this._progressGesture(event); } break; case"mouseup": if(event.ctrlKey&&event.button==2){ this._isMouseDownL=false; this._isMouseDownR=false; this._shouldFireContext=false; this._hideFireContext=false; this._directionChain=''; event.preventDefault(); XULBrowserWindow.statusTextField.label="Reset Gesture"; break; } if(this._isMouseDownR&&event.button==2){ if(this._directionChain)this._shouldFireContext=false; this._isMouseDownR=false; this._stopGesture(event); if(this._shouldFireContext&&!this._hideFireContext){ this._shouldFireContext=false; this._displayContextMenu(event); } }else if(this.enableRockerGestures&&event.button==0&&this._isMouseDownL){ this._isMouseDownL=false; this._shouldFireContext=false; }else if(this.enablePopupGestures&&(event.button==0||event.button==1)&&event.target.localName=='menuitem'){ this._isMouseDownL=false; this._shouldFireContext=false; var popup=document.getElementById(this.POPUP_ID); var activeItem=event.target; switch(popup.getAttribute("gesturecommand")){ case"WebSearchPopup": var selText=popup.getAttribute("selectedtext"); var engine=activeItem.engine; if(!engine)break; var submission=engine.getSubmission(selText,null); if(!submission)break; document.getElementById('searchbar').textbox.value=selText; gBrowser.loadOneTab(submission.uri.spec,null,null,submission.postData,null,false); break; case"ClosedTabsPopup": undoCloseTab(activeItem.index); break; case"HistoryPopup": gBrowser.webNavigation.gotoIndex(activeItem.index); break; case"AllTabsPopup": gBrowser.selectedTab=gBrowser.mTabs[activeItem.index]; break; } popup.hidePopup(); } break; case"popuphiding": var popup=document.getElementById(this.POPUP_ID); popup.removeEventListener("popuphiding",this,true); document.documentElement.removeEventListener("mouseup",this,true); while(popup.hasChildNodes())popup.removeChild(popup.lastChild); break; case"contextmenu": if(this._isMouseDownL||this._isMouseDownR||this._hideFireContext){ event.preventDefault(); event.stopPropagation(); this._shouldFireContext=true; this._hideFireContext=false; } break; case"DOMMouseScroll": if(this.enableWheelGestures&&this._isMouseDownR){ event.preventDefault(); event.stopPropagation(); this._shouldFireContext=false; this._hideFireContext=true; this._directionChain="W"+(event.detail>0?"+":"-"); this._stopGesture(event); } break; case"draggesture": this._isMouseDownL=false; break; } }, _displayContextMenu:function(event){ var evt=event.originalTarget.ownerDocument.createEvent("MouseEvents"); evt.initMouseEvent("contextmenu",true,true,event.originalTarget.defaultView,0,event.screenX,event.screenY,event.clientX,event.clientY,false,false,false,false,2,null); event.originalTarget.dispatchEvent(evt); }, _startGesture:function(event){ this._lastX=event.screenX; this._lastY=event.screenY; this._directionChain=""; }, _progressGesture:function(event){ var x=event.screenX, y=event.screenY; var lastX=this._lastX, lastY=this._lastY; var subX=x-lastX, subY=y-lastY; var distX=(subX>0?subX:(-subX)),distY=(subY>0?subY:(-subY)); var direction; if(distX<10&&distY<10)return; if(distX>distY)direction=subX<0?"L":"R"; else direction=subY<0?"U":"D"; var dChain = this._directionChain; if(direction!=dChain.charAt(dChain.length-1)){ dChain+=direction; this._directionChain+=direction; var gesture=this.GESTURES[dChain]; XULBrowserWindow.statusTextField.label="Gesture: "+dChain+(gesture?' ('+gesture.name+')':''); } this._lastX=x; this._lastY=y; }, _stopGesture:function(event){ try{ if(dChain=this._directionChain)this.GESTURES[dChain].cmd(this,event); XULBrowserWindow.statusTextField.label=""; }catch(e){ XULBrowserWindow.statusTextField.label='Unknown Gesture: '+dChain; } this._directionChain=""; }, _buildPopup:function(event,gestureCmd){ if(!this.enablePopupGestures)return; var popup=document.getElementById(this.POPUP_ID); if(!popup){ popup=document.createElement("popup"); popup.id=this.POPUP_ID; } document.getElementById("mainPopupSet").appendChild(popup); popup.setAttribute("gesturecommand",gestureCmd); switch(gestureCmd){ case"WebSearchPopup": var searchSvc=Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var engines=searchSvc.getVisibleEngines({}); if(engines.length<1)throw"No search engines installed."; for(var i=engines.length-1;i>=0;--i){ var engine = engines[i]; var menuitem=document.createElement("menuitem"); menuitem.setAttribute("label",engine.name); menuitem.setAttribute("class","menuitem-iconic"); if(engine.iconURI)menuitem.setAttribute("src",engine.iconURI.spec); popup.insertBefore(menuitem,popup.firstChild); menuitem.engine=engine; } popup.setAttribute("selectedtext",getBrowserSelection().toString()); break; case"ClosedTabsPopup": try{ if(!gPrefService.getBoolPref("browser.sessionstore.enabled"))throw"Session Restore feature is disabled."; }catch(e){} var ss=Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); if(ss.getClosedTabCount(window)==0)throw"No restorable tabs in this window."; var undoItems=eval("("+ss.getClosedTabData(window)+")"); for(var i=0,LEN=undoItems.length;i<LEN;i++){ var menuitem=popup.appendChild(document.createElement("menuitem")); menuitem.setAttribute("label",undoItems[i].title); menuitem.setAttribute("class","menuitem-iconic bookmark-item"); menuitem.index=i; var iconURL=undoItems[i].image; if(iconURL)menuitem.setAttribute("image",iconURL); } break; case"HistoryPopup": var sessionHistory=gBrowser.webNavigation.sessionHistory; if(sessionHistory.count<1)throw"No back/forward history for this tab."; var curIdx=sessionHistory.index; for(var i=0,shc=sessionHistory.count;i<shc;i++){ var entry=sessionHistory.getEntryAtIndex(i,false); if(!entry)continue; var menuitem=document.createElement("menuitem"); popup.insertBefore(menuitem,popup.firstChild); menuitem.setAttribute("label",entry.title); try{ var iconURL=Cc["@mozilla.org/browser/favicon-service;1"].getService(Ci.nsIFaviconService).getFaviconForPage(entry.URI).spec; menuitem.style.listStyleImage="url("+iconURL+")"; }catch(e){} menuitem.index=i; if(i==curIdx){ menuitem.style.listStyleImage=""; menuitem.setAttribute("type","radio"); menuitem.setAttribute("checked","true"); menuitem.className="unified-nav-current"; activeItem=menuitem; }else{ menuitem.className=i<curIdx?"unified-nav-back menuitem-iconic":"unified-nav-forward menuitem-iconic"; } } break; case"AllTabsPopup": var tabs=gBrowser.mTabs; if(tabs.length<1)return; for(var i=0,LEN=tabs.length;i<LEN;i++){ var menuitem=popup.appendChild(document.createElement("menuitem")); var tab=tabs[i]; menuitem.setAttribute("class","menuitem-iconic bookmark-item"); menuitem.setAttribute("label",tab.label); menuitem.setAttribute("crop",tab.getAttribute("crop")); menuitem.setAttribute("image",tab.getAttribute("image")); menuitem.index=i; if(tab.selected)activeItem=menuitem; } break; } document.popupNode=null; document.tooltipNode=null; popup.addEventListener("popuphiding",this,true); popup.openPopup(null,"",event.clientX,event.clientY,false,false); document.documentElement.addEventListener("mouseup",this,true); }, }; // Запускаем функцию if (this.CBMouseGesturesRun) return; this.CBMouseGesturesRun = true; ucjsMouseGestures.init() |
Пандёнок > 10-05-2012 22:17:55 |
brici пишет
Тем, что лучше найти настоящее решение проблемы, чем оставаться на старой версии, которая со временем становится несовместимой (если это дополнение) или небезопасной (о браузере). |
Ferguss114 > 11-05-2012 10:07:09 |
bunda1 пишет
Ух ты! Даже не думал, что такое возможно! |
2k1dmg > 11-05-2012 10:56:47 |
bunda1 скрытый текст Выделить код Код:'ULD':{name:'Show/Hide BookmarksToolbar',cmd:function(){var toolbar = document.getElementById("PersonalToolbar"); toolbar.collapsed = !toolbar.collapsed; document.persist(toolbar.id, "collapsed");;}}, точнее она открывается пустой, а вот так работает (код взял здесь http://custombuttons.mozdev.org/drupal/ … umentation) скрытый текст Выделить код Код:var toolbar = document.getElementById("PersonalToolbar"); var visibility = toolbar.collapsed; setToolbarVisibility(toolbar, visibility); |
bunda1 > 14-05-2012 01:48:05 |
2k1dmg |