日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Chrome扩展之书签

發(fā)布時間:2023/12/14 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Chrome扩展之书签 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Chrome為開發(fā)者提供了添加、分類(書簽文件夾)和排序等方法來操作書簽,同時也提供了讀取書簽的方法。

?

要在擴展中操作書簽,需要在Manifest中聲明bookmarks權(quán)限:

?

"permissions": [

"bookmarks"

]

在具體講解操作書簽的方法前,先讓我們來了解一下書簽對象的數(shù)據(jù)結(jié)構(gòu)。書簽對象有8個屬性,分別是id、parentId、index、url、title、dateAdded、dateGroupModified和children。這8個屬性并不是每個書簽對象都具有的,比如書簽分類,即一個文件夾,它就不具有url屬性。index屬性是這個書簽在其父節(jié)點中的位置,它的值是從0開始的。children屬性值是一個包含若干書簽對象的數(shù)組。dateAdded和dateGroupModified的值是自1970年1月1日至修改時間所經(jīng)過的毫秒數(shù)。只有id和title是書簽對象必有的屬性,其他的屬性都是可選的。id不需要人為干預(yù),它是由Chrome管理的。根的id為'0'。

創(chuàng)建書簽。可以通過create方法來創(chuàng)建書簽:

chrome.bookmarks.create({parentId: ,index: ,title: ,url: }, function(bookmark){console.log(bookmark); });

?

請注意上面代碼的parentId屬性,'0'為根節(jié)點id,根節(jié)點下是不允許創(chuàng)建書簽和書簽分組的,

它的下面默認(rèn)只有三個書簽分組:書簽欄、其他書簽和移動設(shè)備書簽,如果創(chuàng)建時不指定parentId,則所創(chuàng)建的書簽會默認(rèn)加入到其他書簽中。create方法成功后會調(diào)用指定的回調(diào)函數(shù),回調(diào)結(jié)果是書簽對象。create方法支持指定的書簽屬性只有上述代碼中所列出的4個:parentId、index、title和url,其他屬性均不支持指定。如果不指定index,這個書簽就將自動添加到相應(yīng)父節(jié)點的尾部。

創(chuàng)建書簽分類。創(chuàng)建書簽分類的方法和創(chuàng)建書簽的方法大致相同,如果創(chuàng)建的書簽不包含url屬性,則Chrome自動將其視作為書簽分類。

調(diào)整書簽位置。通過move方法可以調(diào)整書簽的位置,這種調(diào)整可以是跨越父節(jié)點的,下面的代碼將id為m的書簽移動到了id為n的父節(jié)點第k個位置:

chrome.bookmarks.move(m, {parentId:n,index:k }, function(bookmark){console.log(bookmark); });

更新書簽。通過update方法可以更改書簽屬性,包括標(biāo)題和URL,更新時未指定的屬性值將不會更改。下面的代碼將將id為m的書簽標(biāo)題改為'mm',URL改為'url':

chrome.bookmarks.update(m, {title: 'mm',url: 'url' }, function(bookmark){console.log(bookmark); });

?

移除書簽。通過remove和removeTree可以刪除書簽,remove方法可以刪除書簽和空的書簽分組,removeTree可以刪除包含書簽的書簽分組。下面的代碼移除了id為m的書簽和id為n的書簽分組。請注意,下面的代碼實際上并不能看出刪除的是書簽還是分組,這要結(jié)合用戶的實際情況。

chrome.bookmarks.remove(m, function(){console.log('Bookmark m has been removed.'); }); chrome.bookmarks.removeTree(n, function(){console.log('Bookmark group n has been removed.'); });

?

下面我們來了解一下如何獲取用戶的書簽內(nèi)容。通過getTree方法可以獲得用戶完整的書簽樹,但請注意,如果用戶的書簽樹結(jié)構(gòu)過于復(fù)雜或內(nèi)容過多,getTree方法的效率會很低,而且也會消耗較多的資源,所以請考慮使用后面的方法按需獲取部分書簽樹。下面的代碼獲取了用戶的整個書簽樹:

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

?

需要指出,上面的代碼的返回結(jié)果依然是一個數(shù)組,雖然這個數(shù)組永遠(yuǎn)都只包含一個元素,書簽樹的根節(jié)點。

getChildren方法可以返回以指定節(jié)點為父節(jié)點的下一級書簽節(jié)點,但不包括再下一級的節(jié)點,也就是說返回的書簽對象不包括children屬性,無論它是否具有子節(jié)點。通過這個方法我們可以一層一層地按需獲取用戶的書簽結(jié)構(gòu)。下面的方法獲取了根節(jié)點的所有子節(jié)點。

chrome.bookmarks.getChildren('0', function(bookmarkArray){console.log(bookmarkArray); });

?

getSubTree方法可以返回自指定節(jié)點開始包括當(dāng)前節(jié)點及向下的所有節(jié)點,這個方法與getChildren的區(qū)別是返回值會包含父節(jié)點,且沒有層級限制,即包含書簽對象的children屬性。下面的代碼返回的結(jié)果與getTree方法返回的結(jié)果相同:

chrome.bookmarks.getSubTree('0', function(bookmarkArray){console.log(bookmarkArray); });

?

get方法可以返回指定節(jié)點不包含children屬性的書簽對象數(shù)組,指定的節(jié)點可以是一個或多個。比如下面的代碼獲取了id為m和n的書簽對象:

chrome.bookmarks.get([m, n], function(bookmarkArray){console.log(bookmarkArray); });

getRecent方法提供了獲取最近添加的多個書簽,下面的代碼獲取了最近添加的5個書簽:

chrome.bookmarks.getRecent(5, function(bookmarkArray){console.log(bookmarkArray); });

?

1.根節(jié)點的id為0

?

2.默認(rèn)只有三個書簽分組:書簽欄、其他書簽

?

?

3.我們收藏的內(nèi)容都在書簽欄下

4.開始遍歷根節(jié)點下的子節(jié)點 case Gome.Constant.ACTION.COLLECT_ALL_BOOKMARK:chrome.bookmarks.getChildren('0', function (bookmarkresult) {console.log("zy_child_bookmark:" + JSON.stringify(bookmarkresult));});break;

?

?

5.判斷json數(shù)據(jù)是否是json數(shù)組的方法

var isArray = Array.isArray(data); console.log("zy_isArray:" + isArray);

6.分析書簽遍歷方式

case Gome.Constant.ACTION.COLLECT_ALL_BOOKMARK://該方法返回整棵標(biāo)簽結(jié)構(gòu)樹,是一個json數(shù)組,現(xiàn)在需要的就是解析json數(shù)組chrome.bookmarks.getTree(function (bookmarkresult) {handler.onCollectAllBookmark(bookmarkresult);});break;

?

?

總結(jié)

以上是生活随笔為你收集整理的Chrome扩展之书签的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。