Ericks
狐狸大王
狐狸大王
  • UID31364
  • 注册日期2009-12-12
  • 最后登录2016-06-14
  • 发帖数321
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:7289回复:19

可以代替firegestures扩展的脚本是哪一个?

楼主#
更多 发布于:2010-01-09 17:13
如题,高手指点下,是GM脚本还是UC脚本?
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
1楼#
发布于:2010-01-09 17:13
GM不行,应该是UC
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
Ericks
狐狸大王
狐狸大王
  • UID31364
  • 注册日期2009-12-12
  • 最后登录2016-06-14
  • 发帖数321
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2010-01-09 17:13
kmc:GM不行,应该是UC回到原帖

在隔壁看到有人提及,不知道是哪一个,应该是UC的,但具体名字是什么不知道。。。
xelnaga
千年狐狸
千年狐狸
  • UID1911
  • 注册日期2005-01-08
  • 最后登录2024-06-29
  • 发帖数1725
  • 经验85枚
  • 威望0点
  • 贡献值8点
  • 好评度5点
  • 社区居民
3楼#
发布于:2010-01-09 17:13
Mouse Gestures
轻量的

// ==UserScript==
// @name           Mouse Gestures (Lite Version)
// @namespace      http://www.xuldev.org/
// @description    Lightweight customizable mouse gestures.
// @include        main
// @compatibility  Firefox 3.0, 3.5, 3.6b4
// @author         Gomita
// @version        1.0.20080201
// @homepage       http://www.xuldev.org/misc/ucjs.php
// ==/UserScript==

var ucjsMouseGestures = {

	_lastX: 0,
	_lastY: 0,
	_directionChain: "",

	init: function()
	{
		gBrowser.mPanelContainer.addEventListener("mousedown", this, false);
		gBrowser.mPanelContainer.addEventListener("mousemove", this, false);
		gBrowser.mPanelContainer.addEventListener("mouseup", this, false);
		gBrowser.mPanelContainer.addEventListener("contextmenu", this, true);
	},

	uninit: function()
	{
		gBrowser.mPanelContainer.removeEventListener("mousedown", this, false);
		gBrowser.mPanelContainer.removeEventListener("mousemove", this, false);
		gBrowser.mPanelContainer.removeEventListener("mouseup", this, false);
		gBrowser.mPanelContainer.removeEventListener("contextmenu", this, true);
	},

	_isMouseDown: false,
	_suppressContext: false,
	_shouldFireContext: false,	// for Linux

	handleEvent: function(event)
	{
		switch (event.type) {
			case "mousedown":
				if (event.button == 2) {
					this._isMouseDown = true;
					this._startGesture(event);
				}
				break;
			case "mousemove":
				if (this._isMouseDown) {
					this._progressGesture(event);
				}
				break;
			case "mouseup":
				if (this._isMouseDown) {
					this._isMouseDown = false;
					this._suppressContext = !!this._directionChain;
					this._stopGesture(event);
					if (this._shouldFireContext) {
						this._shouldFireContext = false;
						this._displayContextMenu(event);
					}
				}
				break;
			case "contextmenu":
				if (this._suppressContext || this._isMouseDown) {
					this._suppressContext = false;
					event.preventDefault();
					event.stopPropagation();
					if (this._isMouseDown) {
						this._shouldFireContext = true;
					}
				}
				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;
		var y = event.screenY;
		var distanceX = Math.abs(x - this._lastX);
		var distanceY = Math.abs(y - this._lastY);
		// minimal movement where the gesture is recognized
		const tolerance = 10;
		if (distanceX < tolerance && distanceY < tolerance)
			return;
		// determine current direction
		var direction;
		if (distanceX > distanceY)
			direction = x < this._lastX ? "L" : "R";
		else
			direction = y < this._lastY ? "U" : "D";
		// compare to last direction
		var lastDirection = this._directionChain.charAt(this._directionChain.length - 1);
		if (direction != lastDirection) {
			this._directionChain += direction;
			XULBrowserWindow.statusTextField.label = "Gesture: " + this._directionChain;
		}
		// save current position
		this._lastX = x;
		this._lastY = y;
	},

	_stopGesture: function(event)
	{
		try {
			if (this._directionChain)
				this._performAction(event);
			XULBrowserWindow.statusTextField.label = "";
		}
		catch(ex) {
			XULBrowserWindow.statusTextField.label = ex;
		}
		this._directionChain = "";
	},

	_performAction: function(event)
	{
		// These are the mouse gesture mappings. Customize this as you like.
		switch (this._directionChain) {
			// Back
			case "L": document.getElementById("Browser:Back").doCommand(); break;
			// Forward
			case "R": document.getElementById("Browser:Forward").doCommand(); break;
			// Reload
			case "UD": document.getElementById("Browser:Reload").doCommand(); break;
			// Reload (Skip Cache)
			case "UDU": document.getElementById("Browser:ReloadSkipCache").doCommand(); break;
			// Minimize Window
			case "RUD": window.minimize(); break;
			// Maximize Window or Restore Window Size
			case "RDU": window.windowState == 1 ? window.restore() : window.maximize(); break;
			// Open New Tab
			case "LR": document.getElementById("cmd_newNavigatorTab").doCommand(); break;
			// Close Tab
			case "DR": document.getElementById("cmd_close").doCommand(); break;
			// Undo Close Tab
			case "DL": document.getElementById("History:UndoCloseTab").doCommand(); break;
			// Undo Close Tab (If you are using Tab Mix Plus's Session Manager, use this instead.)
			// case "DL": gBrowser.undoRemoveTab(); break;
			// Previous Tab
			case "UL": gBrowser.mTabContainer.advanceSelectedTab(-1, true); break;
			// Next Tab
			case "UR": gBrowser.mTabContainer.advanceSelectedTab(+1, true); break;
			// Scroll Top
			case "LU": goDoCommand("cmd_scrollTop"); break;
			// Scroll Bottom
			case "LD": goDoCommand("cmd_scrollBottom"); break;
			// Page Up
			case "U": goDoCommand("cmd_scrollPageUp"); break;
			// Page Down
			case "D": goDoCommand("cmd_scrollPageDown"); break;
			// Increase Text Size
			case "LRD": document.getElementById("cmd_textZoomReduce").doCommand(); break;
			// Decrease Text Size
			case "LRU": document.getElementById("cmd_textZoomEnlarge").doCommand(); break;
			// Full Screen
			case "LDRU": document.getElementById("View:FullScreen").doCommand(); break;
			// Unknown Gesture
			default: throw "Unknown Gesture: " + this._directionChain;
		}
	}

};

// Entry Point
ucjsMouseGestures.init();
window.addEventListener("unload", function(){ ucjsMouseGestures.uninit(); }, false);
Ericks
狐狸大王
狐狸大王
  • UID31364
  • 注册日期2009-12-12
  • 最后登录2016-06-14
  • 发帖数321
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2010-01-09 17:13
谢谢楼上的提供,看了看,动作不太合我的习惯,我尝试着改一下,十分感谢。
Ericks
狐狸大王
狐狸大王
  • UID31364
  • 注册日期2009-12-12
  • 最后登录2016-06-14
  • 发帖数321
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2010-01-09 17:13
看了一下,似乎没有关闭窗口以及重启浏览器这样的动作,最可惜的是没有返回上一层的手势(go upper level)。
xelnaga
千年狐狸
千年狐狸
  • UID1911
  • 注册日期2005-01-08
  • 最后登录2024-06-29
  • 发帖数1725
  • 经验85枚
  • 威望0点
  • 贡献值8点
  • 好评度5点
  • 社区居民
6楼#
发布于:2010-01-09 17:13
本质上,扩展对功能的实现靠的也是JS
包括FX本身也是在靠JS实现功能

对于自己实现一些功能来说,纯脚本确实简单一些,只要专注在脚本功能实现上就行了。不过对用户而言,脚本的可配置型没有扩展高,并不是所有人能看懂JS的,即使是一些简单的语句,甚至有人对简单的英文也不明白。所以还是推荐扩展,说到这个,我想我也明白了为什么MOZILLA没有直接集成UC自定义JS脚本这个功能。

这个有点题外话了
讲正题


如果你需要什么功能可以去firegestures里的js文件找
路径在firegestures.xpi/chrome/firegestures.jar/browser.js

上面贴的这个Mouse Gestures (Lite Version) ,它对操作的实现基本上依靠浏览器自己已经实现的部分
Firegestures这个扩展则在浏览器之外自己实现了更多功能
当然都是用js写的
所以你需要什么功能可以去firegestures里的browser.js文件里去找它的实现方法
如果是firegestures自己实现的,你就拷贝它的代码,如果是fx自身已经实现的,你也可以找到它的方法怎么写


比如你需要go upper level功能

browser.js里面去找 upper 字段,可以找到


goUpperLevel: function() {
		var uri = gBrowser.currentURI;
		if (uri.path == "/")
			return;
		var pathList = uri.path.split("/");
		if (!pathList.pop())
			pathList.pop();
		loadURI(uri.prePath + pathList.join("/") + "/");
	},


你可以把它拷贝到mouse gesture的代码里
添加相应的识别/执行代码

// go upper level
         case "L": this.goUpperLevel(); break;



---------------------------------------------------


重启浏览器的代码是:

case "L": Application.restart(); break;



关闭窗口是

case "L": window.close(); break;




--------------------------


以下是完整的,添加了返回上一级、关闭、重启功能的代码

添加部分做了分割线


// ==UserScript==
// @name           Mouse Gestures (Lite Version)
// @namespace      http://www.xuldev.org/
// @description    Lightweight customizable mouse gestures.
// @include        main
// @compatibility  Firefox 3.0, 3.5, 3.6b4
// @author         Gomita
// @version        1.0.20080201
// @homepage       http://www.xuldev.org/misc/ucjs.php
// ==/UserScript==

var ucjsMouseGestures = {

   _lastX: 0,
   _lastY: 0,
   _directionChain: "",

   init: function()
   {
      gBrowser.mPanelContainer.addEventListener("mousedown", this, false);
      gBrowser.mPanelContainer.addEventListener("mousemove", this, false);
      gBrowser.mPanelContainer.addEventListener("mouseup", this, false);
      gBrowser.mPanelContainer.addEventListener("contextmenu", this, true);
   },

   uninit: function()
   {
      gBrowser.mPanelContainer.removeEventListener("mousedown", this, false);
      gBrowser.mPanelContainer.removeEventListener("mousemove", this, false);
      gBrowser.mPanelContainer.removeEventListener("mouseup", this, false);
      gBrowser.mPanelContainer.removeEventListener("contextmenu", this, true);
   },

   _isMouseDown: false,
   _suppressContext: false,
   _shouldFireContext: false,   // for Linux

   handleEvent: function(event)
   {
      switch (event.type) {
         case "mousedown":
            if (event.button == 2) {
               this._isMouseDown = true;
               this._startGesture(event);
            }
            break;
         case "mousemove":
            if (this._isMouseDown) {
               this._progressGesture(event);
            }
            break;
         case "mouseup":
            if (this._isMouseDown) {
               this._isMouseDown = false;
               this._suppressContext = !!this._directionChain;
               this._stopGesture(event);
               if (this._shouldFireContext) {
                  this._shouldFireContext = false;
                  this._displayContextMenu(event);
               }
            }
            break;
         case "contextmenu":
            if (this._suppressContext || this._isMouseDown) {
               this._suppressContext = false;
               event.preventDefault();
               event.stopPropagation();
               if (this._isMouseDown) {
                  this._shouldFireContext = true;
               }
            }
            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;
      var y = event.screenY;
      var distanceX = Math.abs(x - this._lastX);
      var distanceY = Math.abs(y - this._lastY);
      // minimal movement where the gesture is recognized
      const tolerance = 10;
      if (distanceX < tolerance && distanceY < tolerance)
         return;
      // determine current direction
      var direction;
      if (distanceX > distanceY)
         direction = x < this._lastX ? "L" : "R";
      else
         direction = y < this._lastY ? "U" : "D";
      // compare to last direction
      var lastDirection = this._directionChain.charAt(this._directionChain.length - 1);
      if (direction != lastDirection) {
         this._directionChain += direction;
         XULBrowserWindow.statusTextField.label = "Gesture: " + this._directionChain;
      }
      // save current position
      this._lastX = x;
      this._lastY = y;
   },

   _stopGesture: function(event)
   {
      try {
         if (this._directionChain)
            this._performAction(event);
         XULBrowserWindow.statusTextField.label = "";
      }
      catch(ex) {
         XULBrowserWindow.statusTextField.label = ex;
      }
      this._directionChain = "";
   },
   
 // ============================   添加部分============================   
	goUpperLevel: function() {
		var uri = gBrowser.currentURI;
		if (uri.path == "/")
			return;
		var pathList = uri.path.split("/");
		if (!pathList.pop())
			pathList.pop();
		loadURI(uri.prePath + pathList.join("/") + "/");
	},
	
   _performAction: function(event)
   {
      // These are the mouse gesture mappings. Customize this as you like.
      switch (this._directionChain) {
         // go upper level
         case "LRL": this.goUpperLevel(); break;
         // close window
         case "RLR": window.close(); break;
         // restart firefox
         case "LRLR": Application.restart(); break;
         
 // ============================   添加部分============================   
         // Back
         case "L": document.getElementById("Browser:Back").doCommand(); break;
         // Forward
         case "R": document.getElementById("Browser:Forward").doCommand(); break;
         // Reload
         case "UD": document.getElementById("Browser:Reload").doCommand(); break;
         // Reload (Skip Cache)
         case "UDU": document.getElementById("Browser:ReloadSkipCache").doCommand(); break;
         // Minimize Window
         case "RUD": window.minimize(); break;
         // Maximize Window or Restore Window Size
         case "RDU": window.windowState == 1 ? window.restore() : window.maximize(); break;
         // Open New Tab
         case "LR": document.getElementById("cmd_newNavigatorTab").doCommand(); break;
         // Close Tab
         case "DR": document.getElementById("cmd_close").doCommand(); break;
         // Undo Close Tab
         case "DL": document.getElementById("History:UndoCloseTab").doCommand(); break;
         // Undo Close Tab (If you are using Tab Mix Plus's Session Manager, use this instead.)
         // case "DL": gBrowser.undoRemoveTab(); break;
         // Previous Tab
         case "UL": gBrowser.mTabContainer.advanceSelectedTab(-1, true); break;
         // Next Tab
         case "UR": gBrowser.mTabContainer.advanceSelectedTab(+1, true); break;
         // Scroll Top
         case "LU": goDoCommand("cmd_scrollTop"); break;
         // Scroll Bottom
         case "LD": goDoCommand("cmd_scrollBottom"); break;
         // Page Up
         case "U": goDoCommand("cmd_scrollPageUp"); break;
         // Page Down
         case "D": goDoCommand("cmd_scrollPageDown"); break;
         // Increase Text Size
         case "LRD": document.getElementById("cmd_textZoomReduce").doCommand(); break;
         // Decrease Text Size
         case "LRU": document.getElementById("cmd_textZoomEnlarge").doCommand(); break;
         // Full Screen
         case "LDRU": document.getElementById("View:FullScreen").doCommand(); break;
         // Unknown Gesture
         default: throw "Unknown Gesture: " + this._directionChain;
      }
   }

};

// Entry Point
ucjsMouseGestures.init();
window.addEventListener("unload", function(){ ucjsMouseGestures.uninit(); }, false);
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2024-07-02
  • 发帖数2773
  • 经验584枚
  • 威望1点
  • 贡献值128点
  • 好评度104点
  • 社区居民
  • 最爱沙发
  • 忠实会员
7楼#
发布于:2010-01-09 17:13
受益匪浅;
原来还能这样用。
Ericks
狐狸大王
狐狸大王
  • UID31364
  • 注册日期2009-12-12
  • 最后登录2016-06-14
  • 发帖数321
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2010-01-09 17:13
xelnaga:本质上,扩展对功能的实现靠的也是JS
包括FX本身也是在靠JS实现功能

对于自己实现一些功能来说,纯脚本确实简单一些,只要专注在脚本功能实现上就行了。不过对用户而言,脚本的可配置型没有扩展高,并不是所有人能看懂JS的,即使是一些简单的语句,甚至有人对简单的英文也不明白。所以还是推荐扩展,说到这个,我想我也明白了为什么MOZILLA没有直接集成UC自定义JS脚本这个功能。

这个有点题外话了
讲正题


如果你需要什么功能可以去firegestures里的js文件找
路径在firegestures.xpi/chrome/firegestures.jar/browser.js

上面贴的这个Mouse Gestures (Lite Version) ,它对操作的实现基本上依靠浏览器自己已经实现的部分
Firegestures这个扩展则在浏览器之外自己实现了更多功能
当然都是用js写的
所以你需要什么功能可以去firegestures里的browser.js文件里去找它的实现方法
如果是firegestures自己实现的,你就拷贝它的代码,如果是fx自身已经实现的,你也可以找到它的方法怎么写


比如你需要go upper level功能

browser.js里面去找 upper 字段,可以找到


goUpperLevel: function() {
		var uri = gBrowser.currentURI;
		if (uri.path == "/")
			return;
		var pathList = uri.path.split("/");
		if (!pathList.pop())
			pathList.pop();
		loadURI(uri.prePath + pathList.join("/") + "/");
	},


你可以把它拷贝到mouse gesture的代码里
添加相应的识别/执行代码

// go upper level
         case "L": this.goUpperLevel(); break;



---------------------------------------------------


重启浏览器的代码是:

case "L": Application.restart(); break;



关闭窗口是

case "L": window.close(); break;




--------------------------


以下是完整的,添加了返回上一级、关闭、重启功能的代码

添加部分做了分割线


// ==UserScript==
// @name           Mouse Gestures (Lite Version)
// @namespace      http://www.xuldev.org/
// @description    Lightweight customizable mouse gestures.
// @include        main
// @compatibility  Firefox 3.0, 3.5, 3.6b4
// @author         Gomita
// @version        1.0.20080201
// @homepage       http://www.xuldev.org/misc/ucjs.php
// ==/UserScript==

var ucjsMouseGestures = {

   _lastX: 0,
   _lastY: 0,
   _directionChain: "",

   init: function()
   {
      gBrowser.mPanelContainer.addEventListener("mousedown", this, false);
      gBrowser.mPanelContainer.addEventListener("mousemove", this, false);
      gBrowser.mPanelContainer.addEventListener("mouseup", this, false);
      gBrowser.mPanelContainer.addEventListener("contextmenu", this, true);
   },

   uninit: function()
   {
      gBrowser.mPanelContainer.removeEventListener("mousedown", this, false);
      gBrowser.mPanelContainer.removeEventListener("mousemove", this, false);
      gBrowser.mPanelContainer.removeEventListener("mouseup", this, false);
      gBrowser.mPanelContainer.removeEventListener("contextmenu", this, true);
   },

   _isMouseDown: false,
   _suppressContext: false,
   _shouldFireContext: false,   // for Linux

   handleEvent: function(event)
   {
      switch (event.type) {
         case "mousedown":
            if (event.button == 2) {
               this._isMouseDown = true;
               this._startGesture(event);
            }
            break;
         case "mousemove":
            if (this._isMouseDown) {
               this._progressGesture(event);
            }
            break;
         case "mouseup":
            if (this._isMouseDown) {
               this._isMouseDown = false;
               this._suppressContext = !!this._directionChain;
               this._stopGesture(event);
               if (this._shouldFireContext) {
                  this._shouldFireContext = false;
                  this._displayContextMenu(event);
               }
            }
            break;
         case "contextmenu":
            if (this._suppressContext || this._isMouseDown) {
               this._suppressContext = false;
               event.preventDefault();
               event.stopPropagation();
               if (this._isMouseDown) {
                  this._shouldFireContext = true;
               }
            }
            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;
      var y = event.screenY;
      var distanceX = Math.abs(x - this._lastX);
      var distanceY = Math.abs(y - this._lastY);
      // minimal movement where the gesture is recognized
      const tolerance = 10;
      if (distanceX < tolerance && distanceY < tolerance)
         return;
      // determine current direction
      var direction;
      if (distanceX > distanceY)
         direction = x < this._lastX ? "L" : "R";
      else
         direction = y < this._lastY ? "U" : "D";
      // compare to last direction
      var lastDirection = this._directionChain.charAt(this._directionChain.length - 1);
      if (direction != lastDirection) {
         this._directionChain += direction;
         XULBrowserWindow.statusTextField.label = "Gesture: " + this._directionChain;
      }
      // save current position
      this._lastX = x;
      this._lastY = y;
   },

   _stopGesture: function(event)
   {
      try {
         if (this._directionChain)
            this._performAction(event);
         XULBrowserWindow.statusTextField.label = "";
      }
      catch(ex) {
         XULBrowserWindow.statusTextField.label = ex;
      }
      this._directionChain = "";
   },
   
 // ============================   添加部分============================   
	goUpperLevel: function() {
		var uri = gBrowser.currentURI;
		if (uri.path == "/")
			return;
		var pathList = uri.path.split("/");
		if (!pathList.pop())
			pathList.pop();
		loadURI(uri.prePath + pathList.join("/") + "/");
	},
	
   _performAction: function(event)
   {
      // These are the mouse gesture mappings. Customize this as you like.
      switch (this._directionChain) {
         // go upper level
         case "LRL": this.goUpperLevel(); break;
         // close window
         case "RLR": window.close(); break;
         // restart firefox
         case "LRLR": Application.restart(); break;
         
 // ============================   添加部分============================   
         // Back
         case "L": document.getElementById("Browser:Back").doCommand(); break;
         // Forward
         case "R": document.getElementById("Browser:Forward").doCommand(); break;
         // Reload
         case "UD": document.getElementById("Browser:Reload").doCommand(); break;
         // Reload (Skip Cache)
         case "UDU": document.getElementById("Browser:ReloadSkipCache").doCommand(); break;
         // Minimize Window
         case "RUD": window.minimize(); break;
         // Maximize Window or Restore Window Size
         case "RDU": window.windowState == 1 ? window.restore() : window.maximize(); break;
         // Open New Tab
         case "LR": document.getElementById("cmd_newNavigatorTab").doCommand(); break;
         // Close Tab
         case "DR": document.getElementById("cmd_close").doCommand(); break;
         // Undo Close Tab
         case "DL": document.getElementById("History:UndoCloseTab").doCommand(); break;
         // Undo Close Tab (If you are using Tab Mix Plus's Session Manager, use this instead.)
         // case "DL": gBrowser.undoRemoveTab(); break;
         // Previous Tab
         case "UL": gBrowser.mTabContainer.advanceSelectedTab(-1, true); break;
         // Next Tab
         case "UR": gBrowser.mTabContainer.advanceSelectedTab(+1, true); break;
         // Scroll Top
         case "LU": goDoCommand("cmd_scrollTop"); break;
         // Scroll Bottom
         case "LD": goDoCommand("cmd_scrollBottom"); break;
         // Page Up
         case "U": goDoCommand("cmd_scrollPageUp"); break;
         // Page Down
         case "D": goDoCommand("cmd_scrollPageDown"); break;
         // Increase Text Size
         case "LRD": document.getElementById("cmd_textZoomReduce").doCommand(); break;
         // Decrease Text Size
         case "LRU": document.getElementById("cmd_textZoomEnlarge").doCommand(); break;
         // Full Screen
         case "LDRU": document.getElementById("View:FullScreen").doCommand(); break;
         // Unknown Gesture
         default: throw "Unknown Gesture: " + this._directionChain;
      }
   }

};

// Entry Point
ucjsMouseGestures.init();
window.addEventListener("unload", function(){ ucjsMouseGestures.uninit(); }, false);
回到原帖


十分感谢热心帮忙,我这里只改了一个返加上一页,没想到您帮忙全给改过来了,万分感谢哈!
just4fun
千年狐狸
千年狐狸
  • UID30408
  • 注册日期2009-09-17
  • 最后登录2016-04-28
  • 发帖数1497
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度2点
9楼#
发布于:2010-01-09 17:13
隔壁不是有个很全的手势脚本嘛,还带中文说明的。我现在还用的firegestures,但是添加的新手势几乎都是从那个脚本里找的
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
10楼#
发布于:2010-01-09 17:13
Ericks 引用的时候适当删减嘛,全引再加上那么长的签名档,占好多空间啊。
Xelnaga 真是够耐心,值得学习!
Ericks
狐狸大王
狐狸大王
  • UID31364
  • 注册日期2009-12-12
  • 最后登录2016-06-14
  • 发帖数321
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
11楼#
发布于:2010-01-09 17:13
just4fun:隔壁不是有个很全的手势脚本嘛,还带中文说明的。我现在还用的firegestures,但是添加的新手势几乎都是从那个脚本里找的回到原帖

能给个链接吗?找起来就麻烦了。。。谢谢!
saga2008
非常火狐
非常火狐
  • UID25840
  • 注册日期2008-08-15
  • 最后登录2024-07-10
  • 发帖数694
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
  • 社区居民
12楼#
发布于:2010-01-09 17:13
扩展不是挺好的 ?嗯为什么都要用js替代?扩展也就是js+UI大包吧。千万不要被“软件”玩。
我以前也是专门搜集脚本,后来发现,“误入狼穴”了……
just4fun
千年狐狸
千年狐狸
  • UID30408
  • 注册日期2009-09-17
  • 最后登录2016-04-28
  • 发帖数1497
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度2点
13楼#
发布于:2010-01-09 17:13
Ericks
能给个链接吗?找起来就麻烦了。。。谢谢!
回到原帖

http://board.mozest.com/viewthread.php?tid=26773 搜索“代替鼠标手势”
Ericks
狐狸大王
狐狸大王
  • UID31364
  • 注册日期2009-12-12
  • 最后登录2016-06-14
  • 发帖数321
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
14楼#
发布于:2010-01-09 17:13

http://board.mozest.com/viewthread.php?tid=26773 搜索“代替鼠标手势”

这个我试了下,发现Next page脚本的手势命令虽然有,但我改不了,比方说我想改成“UL”是向上一页,“UR”是向下一页,可不起作用,有些晕。
上一页
游客

返回顶部