2016-08-28 5 views
0

나는 bookmarks.create()에 대한 MDN Javascript API 예제를보고있다. 폴더를 만드는 방법을 배워야하는 예제를 구현하려고합니다.javascript로 북마크 폴더를 만드는 방법은 무엇입니까?

function onBookmarkAdded(bookmarkItem) { 
    console.log("Bookmark added with ID: " + bookmarkItem.id); 
} 

chrome.bookmarks.create({ 
    title: "bookmarks.create() on MDN", 
    url: "https://developer.mozilla.org/Add-ons/WebExtensions/API/bookmarks/create" 
}, onBookmarkAdded); 

이것은 내가 말할 수있는 한 아무것도 수행하지 않습니다. 책갈피에 대한 폴더를 만드는 방법에 대한 도움이나 다른 예제는 크게 감사하겠습니다.

+0

"지정한 parentId 아래에 책갈피 또는 폴더를 만듭니다 .URL이 NULL이거나 누락 된 경우 폴더가됩니다." –

+0

* manifest.json * 파일을 포함하도록 질문을 편집하십시오. – Makyen

답변

0

당신은 당신의 코드가 책갈피를 만들 서면으로 작동, 당신의 의 manifest.json 파일에 permissions-"bookmaks"을 추가 한 가정하면. manifest.json 파일이 질문에 포함되어 있지 않기 때문에 문제인지 여부를 판단 할 수 없습니다.

의 즐겨 찾기 폴더를 만들려면 하나는 url 속성을 생략하거나 아래 bookmark.create()

에 전달 객체에 url:null을 제공하는 것입니다 테스트, 전체 (FF48.0.2 및 개발자 에디션에 FF50.0a2) , 확장. browser_action 버튼을 클릭하면 북마크를 만들 수있는 코드로 묶여 있습니다. 설치/Firefox 실행이 아닌 browser_action 버튼을 클릭하면 테스트를 실행하는 것이 더 쉬워졌습니다. 그것은 것입니다 : bookmarks.create() on MDN

  • My Bookmark Folder B
  • 모든 내 즐겨 찾기 폴더 My Bookmark Folder A

  • 의 즐겨 찾기 폴더 My Bookmark Folder B
  • 의 즐겨 찾기 폴더 My Bookmark Folder B.1 만들기 만들기 만들기 :

    1. 라는 제목과 링크 된 책갈피 만들기 이 중 "기타 책갈피"아래에 만들어져 있기 때문에 parentId이 제공되지 않으므로 cal 이 확장 프로그램이 생성하는 북마크 폴더의 하위 폴더가 아닌 폴더는 bookmark.create()입니다.

      background.js :

      //* For testing, open the Browser Console 
      try{ 
          //alert() is not supported in Firefox. This forces the Browser Console open. 
          // This abuse of a misfeature works in FF49.0b+, not in FF48 
          alert('Open the Browser Console.'); 
      }catch(e){ 
          //alert() throws an error in Firefox versions below 49 
          console.log('Alert() threw an error. Probably Firefox version below 49.'); 
      } 
      //* 
      
      chrome.browserAction.onClicked.addListener(function(tab) { 
          doBrowserAction(); 
      }); 
      
      function doBrowserAction(){ 
          console.log('Background: Doing action'); 
          createABookmark(); 
          createABookmarkFolder(); 
          createABookmarkFolderWithinABookmarkFolder(); 
      } 
      
      function onBookmarkAdded(bookmarkItem) { 
          console.log("Bookmark added with ID: " + bookmarkItem.id, bookmarkItem); 
      } 
      
      function createABookmark(){ 
          chrome.bookmarks.create({ 
           title: "bookmarks.create() on MDN", 
           url: "https://developer.mozilla.org/Add-ons/WebExtensions/API/bookmarks/create" 
          }, onBookmarkAdded); 
      } 
      
      function createABookmarkFolder(){ 
          chrome.bookmarks.create({ 
           title: "My Bookmark Folder A", 
           url: null 
          }, onBookmarkAdded); 
      } 
      
      function createABookmarkFolderWithinABookmarkFolder(){ 
          chrome.bookmarks.create({ 
           title: "My Bookmark Folder B", 
           url: null 
          }, bookmarkItem => { 
           onBookmarkAdded(bookmarkItem); 
           chrome.bookmarks.create({ 
            title: "My Bookmark Folder B.1", 
            url: null, 
            parentId: bookmarkItem.id 
           },onBookmarkAdded 
           ); 
          }); 
      } 
      

      manifest.json을 : 당신이 데모 이상 다양한 기능을 사용하려는 경우 분명히

      { 
          "description": "Create a bookmark on browser_action button click", 
          "manifest_version": 2, 
          "name": "Demo: Create Bookmark", 
          "version": "0.1", 
      
          "applications": { 
           "gecko": { 
            //Firefox: must define id to use some features (e.g. option_ui) 
            "id": "[email protected]", 
            "strict_min_version": "48.0" 
           } 
          }, 
      
          "permissions": [ 
           "bookmarks" 
          ], 
      
          "background": { 
           "scripts": [ 
            "background.js" 
           ] 
          }, 
      
          "browser_action": { 
           "default_icon": { 
            "32": "myIcon.png" 
           }, 
           "default_title": "Do Action", 
           "browser_style": true 
          } 
      } 
      

      , 당신이 원하는 것 (예 : 콜백, 책갈피 속성 등을 전달)보다 일반적인 용도로 사용합니다.

      참고 : "General notes on testing and development of WebExtensions in Firefox" of this answer 섹션을 참조하십시오. 귀하의 진술은 "이것은 내가 말할 수있는 한 아무것도하지 못합니다"라는 말은 오류 메시지 또는 콘솔 로그에 대해 Browser Console을보고 있지 않다는 것을 의미합니다.

  • 관련 문제