Firefox extension 开发之常用XPCOM service
来源:互联网 发布:mac可用的魔兽世界插件 编辑:程序博客网 时间:2024/05/29 03:33
当进行firefox extension 开发时,经常用的一些语句就不能继续开心地使用了,想要获得正确的结果,就需要用到其XPCOM service。
Components.classes 对象
参考链接:https://developer.mozilla.org/zh-CN/docs/Components.classes
- 下面列举一些我项目中遇到的使用实例
console log
无法在add-on里面直接使用console.log
替代方案代码:
var debug = { init : function() { this.consoleService = Components.classes["@mozilla.org/consoleservice;1"] .getService(Components.interfaces.nsIConsoleService); }, log : function(msg) { if (this.isEnabled) if (this.consoleService) this.consoleService.logStringMessage(msg); }, consoleService : null, isEnabled : true,};debug.init();...debug.log("Debug info....");
Prefenence system
如果想要在add-on中添加默认的preference value,可以在
default>preferences>pref.js中 添加下列类似语句
pref("your.extension.prefix.key1", false);pref("your.extension.prefix.key2", true);
prefernce system 对应的是about:config,假设存入的key是
your.extension.prefix.key1 = true
your.extension.prefix.key2 = “char value”
则代码对应是
var prefs_service= Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefService);var myprefs = prefs_service.getBranch("your.extension.prefix.");//set preferencemyprefs.setBoolPref("key1", false);//read preferencemyprefs.getCharPref("key2");myprefs.getBoolPref("key1");
Note: getBranch的prefix string 参数必须以”.”结尾。
Get Current URL
对于常规js,可以直接使用(参考网址:http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser ):
window.location.href;
//or
document.URL;
在firefox extension内执行该语句时,window.location.href 获得的值 就是browser.xul。
如果想要获取真正的url,可以使用:
get_current_url: function(){ //get current url in the browser. var windowsService = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator); // window object representing the most recent (active) instance of Firefox var currentWindow = windowsService.getMostRecentWindow('navigator:browser'); // most recent (active) browser object - that's the document frame inside the chrome var browser = currentWindow.getBrowser(); // object containing all the data about an address displayed in the browser var uri = browser.currentURI; // textual representation of the actual full URL displayed in the browser var url = uri.spec; return url; },
0 0
- Firefox extension 开发之常用XPCOM service
- Firefox extension开发之开发环境配置
- FireFox Extension 开发 Helloworld
- Firefox extension开发实战
- FireFox插件开发(二) --- 编写和使用XPCOM组件
- Firefox插件开发(extension): Hello World!
- Mozilla Firefox Extension扩展 内幕 教程 源代码分析 安装过程分析(XPInstall,xpcom,rdf,xpi,chrome,manifest)
- firefox extension
- Firefox 扩展开发系列 – Firefox extension 文件的组成
- Firefox 扩展开发系列 – Firefox Extension 调试
- FireFox插件和扩展开发(二)——编写和使用XPCOM组件
- Firefox 自动化插件开发—binary xpcom组件从3.6对应升级到4.0以上
- Mozilla Firefox扩展(Extensions)开发——XPCOM&XUL(一)
- Mozilla Firefox扩展(Extensions)开发——XPCOM&XUL(二)
- firefox常用开发组件
- firefox常用开发插件
- XPCom开发资料
- XPCOM开发简介
- 关于开发工具的一些快捷键收集(持续更新)
- CArray排序
- Zookeeper 的学习与运用
- DLL动态链接库的是如何建立的(1)
- oncreate()方法中获得view宽高 观察者模式
- Firefox extension 开发之常用XPCOM service
- C++对象构造函数与析构函数的调用时间问题
- ubuntu12.04 安装 gcc-4.8
- Oracle使用存储过程分页
- Spring自动注入properties文件
- 代码重构[iOS开发]
- 我的2016书单
- recyclerview点击item弹出popupwindow
- stack frame栈帧简介(逆向工程角度)