这几日需要写一个给火狐浏览器增加书签的功能,需要实现给指定的书签文件夹添加文件夹和网址,封装了一些原生的方法。
参考资料:
1.XPCOM nsINavBookmarkObserver (火狐开放书签接口)
2.XPCOM nsINavBookmarksService (火狐开放书签接口)
3.Code Snippets Bookmarks (官方示例)
第一步:引入firefox的Bookmark API的常量;
var bmsvc = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"] .getService(Components.interfaces.nsINavBookmarksService); var htService = Components.classes["@mozilla.org/browser/nav-history-service;1"]. getService(Components.interfaces.nsINavHistoryService); var ioService = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var menuFolder = bmsvc.bookmarksMenuFolder; // 书签菜单文件夹 var toolbarFolder = bmsvc.toolbarFolder; // 书签工具栏文件夹
第二步:给根书签工具栏根目录添加书签;
function addUrl(name, url) { var uri = ioService.newURI(url, null, null); if (!bmsvc.isBookmarked(uri)) {//检测网址是否存在 bmsvc.insertBookmark(bmsvc.toolbarFolder, uri,bmsvc.DEFAULT_INDEX, name);//添加书签 } }
第三步:给指定目录添加书签文件夹;
function addFolderUrl(folderType, folderName) { var query = htService.getNewQuery(); var options = htService.getNewQueryOptions(); query.setFolders([toolbarFolder], 1); var result = htService.executeQuery(query, options); var rootNode = result.root; var childFolder = 0; rootNode.containerOpen = true; //检测是否有同名的文件夹 for (var i = 0; i < rootNode.childCount; i++) { var node = rootNode.getChild(i); if (node.type == node.RESULT_TYPE_FOLDER && node.title == folderName) { childFolder = node.itemId; //创建文件夹 var newFolderId = bmsvc.createFolder(folderType, folderName, bmsvc.DEFAULT_INDEX); break; } } rootNode.containerOpen = false; };
相关推荐
firefox 扩展开发示例 , firefox 插件开发 内含, 1.示例程序 2.指导步骤 3.扩展开发教程 指导步骤,为原创内容,写的不好,大家见凉!
NULL 博文链接:https://ironurbane.iteye.com/blog/385384
web开发必备的firefox扩展集合: compatibility detector firebug firecookies fireguestures measureit rainbow color tools web developer
这个文档是个人在开发100工具时总结出来的文档,部分内容摘自他人,只供学习
firefox插件开发教程firefox插件开发教程
博文中firefox扩展开发初级教程示例扩展xpi包,可快速重启firefox。欢迎下载,学习使用并与我交流。firefox交流群:81424441
本文档详细介绍了Firefox扩展开发的详细过程,包括文档的组织结构,安装的配置以及一些基本的xul语法知识等,文档中的示例可以直接编辑,生成Firefox扩展。
快速重启firefox,定制工具栏中添加了一个按钮,可手动移动到任何地方。完整版在文件菜单中增加了重新启动菜单项。直接打开Firefox,拖拽进Firefox就可以安装
Firefox填写表单扩展 安装方法很简单,直接拖拽到火狐浏览器窗口中然后根据提示操作即可。 随时关注最新版: http://code.google.com/p/ffextension/downloads 火狐官方下载地址: ...
开放性阅读障碍-Firefox扩展 :fire: :fox: Open-Dyslexic是一种开放源代码的字体,旨在提高阅读困难的读者的可读性。 此扩展名将使用OpenDyslexic字体覆盖网页上的所有字体,并格式化页面以使其更易于阅读。 安装 ...
firefox extension 开发例子
基于 Mozilla firefox 的扩展开发教程。如果你对firefox插件感兴趣,或许你也可以成为开发中的一员。
这是关于Firefox和Chrome扩展开发技术,此文档详细介绍了利用java技术开发Firefox和Chrome浏览器插件的一些问题
firefox-extensions:有用的Firefox扩展
firefox-extensions:很棒的Firefox扩展
Firefox的Postwoman扩展 还没尝试过Postwoman吗? 在尝试 该扩展程序当前为Postwoman提供以下功能。 覆盖跨源请求的CORS限制。 建筑与实验 克隆仓库 运行npm install 运行npm run build生成dist文件夹 导航到about...
首先下载我分享的文件,里面是config.js和config-prefs.js两个文件,然后:第一步:找到你安装的火狐的安装目录第二步:将config.js放到火狐安装的根目录下 例D:\Mozilla Firefox第三步:将config-prefs.js放到火狐...
受影响的包括uBlock Origin、AdGuard AdBlocker、AdBlock For Firefox、AdNauseam等广告拦截扩展。只有科学上网,去AdGuard或AdGuard AdBlocker英文网站主页安装这个插件。你也可以尝试下载这个离线安装插件,解压缩...
里面有firefox扩展插件制作所需要的一部分知识。有经典 javascript脚本,XML教材,一些扩展插件例子。
firefox-extension:Firefox开发人员工具的站点兼容性工具扩展