`

chrome的扩展中调用书签的API

阅读更多
chrome的扩展中怎么调用书签的API?

1,chrome.bookmarks.getTree(function callback)

Retrieves the entire Bookmarks hierarchy.
Parameters
callback ( function )
Callback function
The callback parameter should specify a function that looks like this:
function(array of BookmarkTreeNode results) {...};
results ( array of BookmarkTreeNode )
获得 一个BookmarkTreeNode类型的Arrary

2,如果BookmarkTreeNode节点的children 属性为空,则说明是一个空文件夹或者是一个书签;
url 属性为空,则说明是一个文件夹,下面是原文:

(The URL navigated to when a user clicks the bookmark. Omitted for folders.)

<html>
<head>
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/base/jquery-ui.css" rel="stylesheet">
<style>
div, td, th { color: black; }
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<script>

  function dumpBookmarks(query) {
    var bookmarkTreeNodes = chrome.bookmarks.getTree(
      function(bookmarkTreeNodes) {
        $('#bookmarks').append(dumpTreeNodes(bookmarkTreeNodes, query));
      });
  }
  function dumpTreeNodes(bookmarkNodes, query) {
    var list = $('<ul>');
    var i;
    for (i = 0; i < bookmarkNodes.length; i++) {
      list.append(dumpNode(bookmarkNodes[i], query));
    }
    return list;
  }
  function dumpNode(bookmarkNode, query) {
    if (bookmarkNode.title) {
      if (query && !bookmarkNode.children) {
        if (String(bookmarkNode.title).indexOf(query) == -1) {
          return $('<span></span>');
        }
      }
     var anchor = $('<a>');
      anchor.attr('href', bookmarkNode.url);
      anchor.text(bookmarkNode.title);     
      anchor.click(function() {
        chrome.tabs.create({url: bookmarkNode.url});
      });
    }
    var li = $(bookmarkNode.title ? '<li>' : '<div>').append(anchor);
    if (bookmarkNode.children && bookmarkNode.children.length > 0) {
      li.append(dumpTreeNodes(bookmarkNode.children, query));
    }
    return li;
  }
</script>
</head>
<body onload="dumpBookmarks();" style="width: 400px">

<div id="bookmarks"></div>

</body>
</html>


{
  "name": "Bookmarks",
  "version": "1.0",
  "description": "A browser action with a popup dump of all bookmarks",
  "permissions": [
    "bookmarks", "tabs"
  ],
  "browser_action": {
      "default_title": "My Bookmarks.",
      "default_icon": "icon.png",
      "popup": "popup.html"
  }
}

http://www.luexiao.com/questions/112695
分享到:
评论

相关推荐

    Chrome 扩展-及应 用开发

    6. Chrome扩展API:为了执行特定的操作,扩展需要调用Chrome提供的扩展API。API覆盖的范围非常广泛,从简单的浏览器信息获取,到复杂的标签管理、书签操作等都有涉及。开发者需要仔细阅读官方文档来了解和掌握这些...

    chrome扩展程序开发/chrome运行本地JS脚本

    Chrome扩展提供了丰富的API,允许开发者访问浏览器功能,如存储(`chrome.storage`)、书签(`chrome.bookmarks`)、历史记录(`chrome.history`)等。在本地JS脚本中,你可以调用这些API来扩展功能。 **7. 测试和...

    chrome扩展插件的3个例子帮助入门

    在Chrome扩展中,弹窗通常用于显示一些临时信息或交互界面。这个例子可能涉及到创建一个按钮,当用户点击该按钮时,会在浏览器右下角弹出一个小窗口。实现这一功能的关键在于`manifest.json`文件中的`browser_action...

    Chrome插件和Chrome扩展有什么区别.docx

    相对而言,"Extension"扩展则是针对浏览器自身的功能增强,它们能够调用浏览器提供的API,如添加书签管理、网页翻译等功能。扩展通常可以在不同的操作系统之间通用,如Windows和Mac。这使得用户能够在不同的设备上...

    chrome-usage-sort-bookmarks:根据使用频率排序书签的 Chrome 扩展程序

    《基于使用频率排序Chrome书签的扩展程序解析》 ...这个项目不仅展示了JavaScript在浏览器扩展开发中的强大能力,也为其他开发者提供了一个实用的参考案例,进一步推动了Chrome扩展程序生态的发展。

    chrome插件开发文档

    四、扩展调用 NPAPI 插件 JS 虽然越来越牛叉了,但毕竟存在局限性,有些处理目前用 JS 来做毕竟还不现实,比如视频插件、大数据计算等,这类处理大部分还是会通过 C++ 等语言封装的组件来实现的,那么在 JS 的插件...

    bookChromeExtensions:图书《 Chrome扩展及应用开发》

    8. **性能优化**:针对Chrome扩展的性能优化,包括合理使用事件监听、减少内存泄漏、优化API调用等策略,也是提高用户体验的重要方面。 9. **调试技巧**:掌握Chrome开发者工具的使用,包括源代码调试、性能分析、...

    chrome-extension-starter:用于Chrome(和Firefox)扩展程序和主题开发的入门工具包

    镀Chrome扩展剂Chrome扩展程序和主题开发的入门套件。Google网上论坛官方文件这是指向各种Chrome开发者页面的链接的目录树。学习基础开发扩展 分发扩展发展官方文档相当详尽且是最新的。 一些建议: 指导开发扩展的...

    chrome-extension-guide:Chrome扩展(插件)开发官方文档中文版翻译

    7. **API调用**:Chrome提供了丰富的API,如存储API(chrome.storage)用于持久化数据,书签API(chrome.bookmarks)用于操作书签,还有通知API(chrome.notifications)用于创建桌面通知等。 在“chrome-extension...

    chrome-speak:使用 tts 功能的 chrome 扩展

    **JavaScript在Chrome扩展中的应用** 在Chrome Speak中,JavaScript不仅用于处理用户交互,还负责与Chrome的API进行通信。开发者通常会使用`chrome.runtime` API来发送和接收消息,以便在后台脚本和内容脚本之间交换...

    chrome-extension-template:chrome扩展模板

    3. **内容脚本(Content Scripts)**:内容脚本是Chrome扩展的一种特殊类型,它们可以在用户浏览的网页上运行,但受到沙盒环境的限制,不能直接访问Chrome扩展的其他部分或者浏览器API。通过`manifest.json`中的`...

    chrome拓展程序demo

    - `chrome.runtime` API提供了一种方式来获取扩展的状态信息,以及与用户进行交互,如通知。 - `chrome.tabs` API允许对浏览器的标签页进行操作,如创建、切换、更新等。 总的来说,"chrome拓展程序demo"项目是一个...

    my-bookmark-sync:Google Chrome的书签同步扩展程序

    例如,当用户在Chrome中添加新的书签时,JavaScript会捕获这一事件,将新书签的信息发送到服务器进行存储,并在其他已安装该扩展的设备上同步更新。 扩展程序的实现通常涉及到Chrome的API,如Bookmarks API,它允许...

    DnWrry:Chrome 扩展程序

    - **浏览器 API 访问**:调用 `chrome.*` API,如存储数据、获取权限、发送通知、管理书签等。 - **异步处理**:配合 Promise 或 async/await 处理异步任务,提高用户体验。 **3. DnWrry 具体功能分析** 由于没有...

    Chrom扩展及应用高清PDF(含源码)

    在本压缩包中,包含的“Chrom扩展及应用高清PDF”很可能是一份详尽的教程,旨在指导读者深入理解和开发Chrome扩展。 这份PDF可能涵盖了以下关键知识点: 1. **Chrome扩展结构**:每个Chrome扩展由几个基本部分组成...

    chrome-extensions:过去几年中我从事的所有chrome扩展! 所有这些都已经很老了,但我想为他们建立一个公共论坛

    在这个“chrome-extensions”项目中,开发者分享了过去几年他所创建的多个Chrome扩展程序,虽然这些扩展可能已过时,但它们依然能为我们提供宝贵的编程经验和设计思路。 首先,我们来深入了解JavaScript在Chrome...

    一个Chrome插件替换Chrome默认首页让大家共享收藏夹

    "其它杂项"可能意味着该插件涵盖了JavaScript开发中的多个方面,包括DOM操作、AJAX异步通信、事件处理、以及可能的API调用等,这些都是构建浏览器扩展时常见的技术。 在【压缩包子文件的文件名称列表】中,"OurPage...

    BookmarkHotkeys:Chrome扩展程序

    书签热键(BookmarkHotkeys)是一款专为Google Chrome浏览器设计的扩展程序,它允许用户通过自定义的快捷键来迅速访问他们的...对于开发者而言,这也是一次学习如何利用JavaScript和Chrome扩展机制实现实用功能的好机会。

    Temptation_Blocker:用于扩展模式的Chrome扩展程序

    在Chrome扩展中,JavaScript负责处理逻辑操作,如拦截和阻止特定网页的加载,或者根据用户设定的时间表控制访问权限。通过Chrome的API(应用程序接口),JavaScript可以获取和操作浏览器的各种功能,如书签、历史...

    Chrome扩展

    JavaScript是开发Chrome扩展的核心语言,它提供了与浏览器交互的能力,包括访问和修改DOM(文档对象模型),处理用户事件,以及通过Chrome API(应用程序接口)与浏览器进行通信。Chrome API为开发者提供了丰富的...

Global site tag (gtag.js) - Google Analytics