var terms = 'Firefox Thunderbird Opera Safari'; var HistoryService = PlacesUtils.history; var BookmarksService = PlacesUtils.bookmarks; var query = HistoryService.getNewQuery(); query.beginTimeReference = query.endTimeReference = query.TIME_RELATIVE_NOW; query.beginTime = -(1000000 * 60 * 60 * 24); var queries = terms.split(' ') .map(function(aTerm) { query.searchTerms = aTerm; return query.clone(); }); var options = HistoryService.getNewQueryOptions(); options.sortingMode = options.SORT_BY_TITLE_ASCENDING; options.expandQueries = true; var result = HistoryService.executeQueries( queries, queries.length, options); // テンポラリフォルダに問い合わせ結果を出力する var tmpId = BookmarksService.createFolder( PlacesUtils.unfiledBookmarksFolderId, '\u62bd\u51fa\u7d50\u679c', -1); var batch = { runBatched : function() { result.root.containerOpen = true; for (var i = 0, maxi = result.root.childCount; i < maxi; i++) { var node = result.root.getChild(i); BookmarksService.insertBookmark(tmpId, makeURI(node.uri), -1, node.title); } } }; BookmarksService.runInBatchMode(batch, null); var writer = { value : '', write : function(aData, aLen) { this.value += aData; } }; var result = PlacesUtils.getFolderContents(tmpId, false, false); PlacesUtils.serializeNodeAsJSONToOutputStream( result.root, writer, true, true, []); BookmarksService.removeFolder(tmpId); var jsonString = writer.value;