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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Chrome扩展之书签

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

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

?

要在擴展中操作書簽,需要在Manifest中聲明bookmarks權限:

?

"permissions": [

"bookmarks"

]

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

創建書簽。可以通過create方法來創建書簽:

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

?

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

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

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

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

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

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

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

?

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

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.'); });

?

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

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

?

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

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

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

?

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

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

?

get方法可以返回指定節點不包含children屬性的書簽對象數組,指定的節點可以是一個或多個。比如下面的代碼獲取了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.根節點的id為0

?

2.默認只有三個書簽分組:書簽欄、其他書簽

?

?

3.我們收藏的內容都在書簽欄下

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

?

?

5.判斷json數據是否是json數組的方法

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

6.分析書簽遍歷方式

case Gome.Constant.ACTION.COLLECT_ALL_BOOKMARK://該方法返回整棵標簽結構樹,是一個json數組,現在需要的就是解析json數組chrome.bookmarks.getTree(function (bookmarkresult) {handler.onCollectAllBookmark(bookmarkresult);});break;

?

?

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。