分页: 1 / 1

怎么把鼠标所点击的链接的地址作为变量传给脚本

发表于 : 2010-12-21 16:59
owwbu
设想是这样的,点击一个链接后,执行某个脚本里头的命令。
在这个脚本里头,
先用wget下载该链接的内容——问题就在这,怎么把链接的地址作为参数传递给wget,这个脚本怎么得到我鼠标点击的链接的网址?
然后再对下载下来的东西进行一堆的后续处理。

Re: 怎么把鼠标所点击的链接的地址作为变量传给脚本

发表于 : 2010-12-21 17:02
jarryson
必须浏览器能执行本地程序。

比如opera就可以修改右键菜单调用外部程序,传递的参数也是可以的。

除此之外除非是浏览器插件,否则无法监视

Re: 怎么把鼠标所点击的链接的地址作为变量传给脚本

发表于 : 2010-12-21 17:40
owwbu
jarryson 写了:必须浏览器能执行本地程序。

比如opera就可以修改右键菜单调用外部程序,传递的参数也是可以的。

除此之外除非是浏览器插件,否则无法监视
谢谢jarryson。

Re: 怎么把鼠标所点击的链接的地址作为变量传给脚本

发表于 : 2010-12-21 23:47
lilydjwg
我一般用 FireGuesture 来弄,类似的脚本(不记得是从哪里学来的了)

代码: 全选

const EXEC_PATH = "/usr/bin/google-chrome";
var linkURL = FireGestures.getLinkURL(FireGestures.sourceNode)||window.content.location.href;

var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath(EXEC_PATH);
if (!file.exists()) {
  alert("File does not exist: " + EXEC_PATH);
  return;
}
var process  = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
try {
  var args = [linkURL];
  process.init(file);
  process.run(false, args, args.length);
} catch (ex) {
  alert("Failed to execute: " + EXEC_PATH);
}
当然,FireGuesture 不是必须的。

Re: 怎么把鼠标所点击的链接的地址作为变量传给脚本

发表于 : 2010-12-22 18:04
tusooa
写脚本,选中链接,设快捷键,脚本里面用xsel取选中内容,通过参数传递给wget
可以用
xterm -e wget "$(xsel)"
的方式执行。