使用vimperator有一定时间了,对于基本操作都没有问题。但是有时候浏览网页需要使用鼠标切换代理,于是想自己定义一下命令如何切换。
首先是想到是否代理扩展有内置的函数提供修改? 修改火狐的about:config值切换?
查阅一下别人是如何做的
参考一:
toggleproxy
查看源码发现使用的方法便是修改network.proxy.type
toggleproxy.penta 文件是设置快捷键的
在about:config中搜索proxy时发现, 当值为0时是关闭代理,值为1时是开启代理1,值为2时开启代理2。
参考二:
Pentadactyl[vimperator分枝]使用心得,期待交流
发现分享的配置有如下内容
" 开启和关闭javascript或图片
command! jstoggle -js (function() { var p = "javascript.enabled"; prefs.set(p, !prefs.get(p)); dactyl.echo(p+" is now set to "+prefs.get(p)+"\n") })()
command! imgtoggle -js (function() { var p = "permissions.default.image"; prefs.set(p, prefs.get(p)==1 ? 2 : 1); dactyl.echo(p+" is now set to "+prefs.get(p)+"\n") })()
自己在_pentadactyl文件里设置
command! proxyon1 -d "设置代理为1" -js (function() { var p = "network.proxy.type"; prefs.set(p, 1); dactyl.echo(p+" is now set to "+prefs.get(p)+"\n") })();
问题基本上解决
对于问题的后续查阅:
配合鼠标手势切换about:config的值
var pref="browser.download.useDownloadDir";
var PS = Components.classes['@mozilla.org/preferences-service;1']
.getService(Components.interfaces.nsIPrefBranch);
PS.setBoolPref(pref,!PS.getBoolPref(pref));
if (PS.getBoolPref(pref) == true){
alert('Set to true');
}else{
alert('Set to false');
}
函数很简单但是不知道有什么用
然后在官网上查阅到
nsIPrefBranch:This interface is used to manipulate the preferences data
别人的笔记:nsIPrefBranch 读写配置文件
我复制过来备用吧
//boolean
var ffPreferences = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
var isFirstTime = ffPreferences.getBoolPref("browser.startup.isFirstTime");
var ffPreferences = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
ffPreferences.setBoolPref("browser.startup.isFirstTime", false);
//string
var ffPreferences = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
var ceDefaultHomePage = ffPreferences.getCharPref("browser.startup.defaultHomePage");
ffPreferences.setCharPref("foxTab.general.orientation", document.getElementById("foxTab_rdb_orientation").selectedItem.id);
//number
var ffPreferences = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
ffPreferences.setIntPref("browser.startup.page",1);
var choice = ffPreferences.getIntPref("browser.startup.page");