Chrome扩展开发总结之浏览器书签获取

前段时间公司要求调研了插件开发,现在做一些总结。

 

 

功能1:通过Chrome插件获取浏览器的书签。

要在扩展中操作书签,需要在Manifest中声明bookmarks权限:

"permissions": [
    "bookmarks"
]

以下是获取用户完整书签的方法

chrome.bookmarks.getTree(function(bookmarkArray){
    console.log(bookmarkArray);
});

 

下图是通过getTree方法获取的完整的Chrome浏览器书签结构。

[
    {
        "children":[
            {
                "children":[
                    {
                        "dateAdded":1533195221974,
                        "id":"29",
                        "index":0,
                        "parentId":"1",
                        "title":"Bookmarks",
                        "url":"chrome://bookmarks/"
                    },
                    {
                        "dateAdded":1504833760729,
                        "id":"6",
                        "index":1,
                        "parentId":"1",
                        "title":"System Dashboard - GOME JIRA",
                        "url":"http://192.168.59.239:8090/secure/Dashboard.jspa"
                    },
                    {
                        "dateAdded":1504851054302,
                        "id":"10",
                        "index":2,
                        "parentId":"1",
                        "title":"360导航_新一代安全上网导航",
                        "url":"https://hao.360.cn/?src=lm&ls=n3287fc1193"
                    },
                    {
                        "dateAdded":1507861175200,
                        "id":"13",
                        "index":3,
                        "parentId":"1",
                        "title":"gerrit.iuv.com:8080/login/%2Fdashboard%2Fself",
                        "url":"http://gerrit.iuv.com:8080/login/%2Fdashboard%2Fself"
                    },
                    {
                        "dateAdded":1510391708075,
                        "id":"17",
                        "index":4,
                        "parentId":"1",
                        "title":"新标签页",
                        "url":"chrome://newtab/"
                    },
                    {
                        "children":[
                            {
                                "dateAdded":1504833785831,
                                "id":"7",
                                "index":0,
                                "parentId":"22",
                                "title":"GM2.0代码提交",
                                "url":"http://192.168.63.219:8080/#/dashboard/self"
                            },
                            {
                                "dateAdded":1510391652467,
                                "id":"16",
                                "index":1,
                                "parentId":"22",
                                "title":"GM12B代码提交",
                                "url":"http://gerrit.iuv.com:8080/dashboard/self"
                            },
                            {
                                "dateAdded":1523150901878,
                                "id":"25",
                                "index":2,
                                "parentId":"22",
                                "title":"NanJing Code Review 217",
                                "url":"http://192.168.63.217:8080/#/dashboard/self"
                            },
                            {
                                "dateAdded":1525059849667,
                                "id":"27",
                                "index":3,
                                "parentId":"22",
                                "title":"Wiki",
                                "url":"http://wiki.iuv.com:8090/spaces/viewspace.action?key=IUV"
                            }
                        ],
                        "dateAdded":1519300604409,
                        "dateGroupModified":1525059849667,
                        "id":"22",
                        "index":5,
                        "parentId":"1",
                        "title":"代码提交"
                    },
                    {
                        "children":[
                            {
                                "dateAdded":1519300582881,
                                "id":"21",
                                "index":0,
                                "parentId":"23",
                                "title":"专利检索及分析",
                                "url":"http://www.pss-system.gov.cn/sipopublicsearch/portal/uiIndex.shtml"
                            },
                            {
                                "dateAdded":1519300549982,
                                "id":"20",
                                "index":1,
                                "parentId":"23",
                                "title":"佰腾网",
                                "url":"http://www.baiten.cn/"
                            }
                        ],
                        "dateAdded":1519300686945,
                        "dateGroupModified":1523150901878,
                        "id":"23",
                        "index":6,
                        "parentId":"1",
                        "title":"专利"
                    },
                    {
                        "dateAdded":1533195225452,
                        "id":"30",
                        "index":7,
                        "parentId":"1",
                        "title":"扩展程序",
                        "url":"chrome://extensions/"
                    },
                    {
                        "dateAdded":1534917074926,
                        "id":"32",
                        "index":8,
                        "parentId":"1",
                        "title":"Animate.css",
                        "url":"https://daneden.github.io/animate.css/"
                    }
                ],
                "dateAdded":1504833743697,
                "dateGroupModified":1534917074926,
                "id":"1",
                "index":0,
                "parentId":"0",
                "title":"书签栏"
            },
            {
                "children":[

                ],
                "dateAdded":1504833743697,
                "id":"2",
                "index":1,
                "parentId":"0",
                "title":"其他书签"
            }
        ],
        "dateAdded":1535934493104,
        "id":"0",
        "title":""
    }
]

 

以下是解析该书签结构的方法:需求是需要获取每个书签的url以及这个书签的完整路径。

 

function analyseBookMark (data, bookmarkArray, path) {
   for (var children in data) {
       if (data[children].length > 0 && typeof(data[children]) == "object") {
           if (data && data.title && data.title !== '') {
               path = path + data.title + '/';
           }
           analyseBookMark(data[children], bookmarkArray, path);
       } else {
           if (typeof(data[children]) == "object") {
               for(var childKey in data[children]) {
                   if (typeof(data[children][childKey]) == "object") {
                       if (data && data[children].title && data[children].title !== '') {
                           path = path + data[children].title + '/';
                       }
                       analyseBookMark(data[children][childKey], bookmarkArray, path);
                   } else {
                       if (childKey === "url") {
                           var url = data[children][childKey];
                           var title = data[children].title;
                           var path = path;
                           var jsonData = {
                               title: title,
                               url: url,
                               path: path
                           };
                           bookmarkArray.push(jsonData);
                       }
                   }
               }
           } else {
               if (children === "url") {
                   var url = data[children];
                   var title = data.title;
                   var path = path;
                   var jsonData = {
                       title: title,
                       url: url,
                       path: path
                   };
                   bookmarkArray.push(jsonData);
               }
           }
       }
   }
};

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Chrome扩展及应用开发是一种通过使用Chrome浏览器的功能来增强用户体验或为用户提供特定功能的方式。其中,PDF开发是其中的一种常见类型。 Chrome扩展及应用开发可以通过使用开发工具和相关的编程语言,如HTML、CSS和JavaScript来创建。对于PDF开发,我们可以通过使用ChromeAPI来实现与PDF文件的交互。 开发PDF扩展或应用的一个常见需求是在浏览器中直接阅读、编辑和操作PDF文件。通过使用Chrome的PDF.js库,我们可以在浏览器中加载和显示PDF文件,而无需使用外部的PDF阅读器。 另一个常见的需求是将网页内容转换为PDF格式以供下载或打印。我们可以使用ChromeAPI将当前网页的内容转换为PDF文件,并提供下载链接或使用打印功能。 除了提供基本的PDF阅读和转换功能,我们还可以通过开发扩展或应用来实现其他高级功能。例如,我们可以为PDF文件添加标签、批注或签名,以方便用户在网页上进行更多的交互和注释。 总而言之,Chrome扩展及应用开发可以通过使用Chrome浏览器的各种功能来实现PDF相关的功能。无论是简单的PDF阅读和转换,还是更高级的交互和注释,Chrome扩展及应用开发为我们提供了丰富的工具和API来满足不同的需求。 ### 回答2: Chrome浏览器提供多种扩展和应用程序开发工具,使得开发者能够开发各种功能丰富的应用程序。其中包括开发与PDF(便携式文档格式)相关的扩展和应用程序。 首先是Chrome扩展开发。通过Chrome扩展API开发者可以创建自定义的PDF浏览器扩展。这些扩展可以添加额外的功能,使用户能够更方便地浏览和处理PDF文件。例如,开发者可以添加标签、书签和注释功能,让用户能够更好地管理和组织PDF文件。开发者还可以实现一键保存和分享PDF文件的功能,提高用户的工作效率。 另外,Chrome应用程序开发也提供了PDF相关的开发能力。通过使用Chrome应用程序API开发者可以创建功能强大的PDF编辑和阅读应用程序。这些应用程序可以提供更高级的功能,比如实时协作编辑、表格操作和数字签名等。开发者还可以利用Chrome应用程序提供的文件系统API,实现PDF文件的快速加载和高效处理。 无论是Chrome扩展还是应用程序开发,都需要掌握HTML、CSS和JavaScript等Web开发技术。开发者可以使用Chrome DevTools进行调试和测试,确保应用程序的稳定性和性能。 总的来说,Chrome提供了丰富的扩展和应用程序开发工具,使开发者能够创建各种与PDF相关的功能丰富的应用程序。这些应用程序可以提供更好的PDF浏览和编辑体验,提高用户的工作效率。无论是开发者还是用户,都能从中受益。 ### 回答3: Chrome扩展及应用开发主要是指开发适用于Chrome浏览器的插件和应用程序。对于PDF文件的处理,也可以通过Chrome扩展和应用开发来实现。 首先,关于Chrome扩展开发者可以使用HTML、CSS和JavaScript等前端技术进行开发,通过Chrome扩展API浏览器进行交互。对于处理PDF文件,可以通过使用PDF.js等开源库来解析和渲染PDF文档,并在扩展中自定义显示效果,如添加标注、高亮、划线等功能。同时,可以利用Chrome扩展API中的下载功能,实现将当前浏览器中的PDF文件下载到本地。 而对于Chrome应用开发开发者可以使用web技术开发出独立的应用程序,通过Chrome Web Store进行分发。对于PDF文件,应用程序可以提供更加完整和专业的处理功能,如编辑、转换、合并、拆分等。开发者可以利用开源的PDF处理库,如PDF.js、PDFtk等来实现相应的功能,并与Chrome浏览器进行无缝集成,提供更好的用户体验。 总结起来,Chrome扩展及应用开发对于PDF文件的处理提供了丰富的工具和API支持,开发者可以根据需求选择合适的开发方式。无论是开发扩展还是应用程序,都可以通过使用开源的PDF处理库来实现各种功能,满足用户对于PDF文件处理的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值