2014-01-26 1 views
0

안녕하세요 Chrome 용 간단한 확장 프로그램을 만들고 기본 폴더로 한 번 클릭하여 북마크를 만듭니다. 그래서이 서비스를 사용하여 확장 생성 : 이제chrome.bookmarks.create 오류가 발생했습니다. '정의되지 않은'create '메서드를 호출 할 수 없습니다.

http://sandbox.self.li/bookmarklet-to-extension/

을, 나는

및 자바 스크립트 파일 "권한에 책갈피를"추가이 json.manifest 파일

{ 
"background": {"scripts": ["background.js"]}, 
"browser_action": { 
"default_icon": "icon-128.png", 
"default_title": "1ClickBookmark" 
}, 
"name": "1ClickBookmark", 
"description": " - Created with http://blog.self.li", 
"homepage_url": "http://blog.self.li/post/16366939413/how-to-convert-bookmarklet-to-chrome-extension", 
"icons": { 
    "16": "icon-16.png", 
    "48": "icon-48.png", 
    "128": "icon-128.png" }, 
"permissions": [ 
    "tabs", 
    "bookmarks", 
    "http://*/*", 
    "https://*/*" 
], 
"version": "0.1", 
"manifest_version": 2 
} 

이 :

(function(){ 
    chrome.bookmarks.create({ 
    'parentId': null, 
    'title': 'AAAAAAA', 
    'url': 'http://www.google.com/'}); 
    alert("Bookmark added!"); 
})(); 

parentId = null "기타 북마크"의 루트, 괜찮습니다. 나는 배경에 직접 그냥 스크립트를 실행하는 경우,

그러나 이 chrome.bookmarks.create을위한 "방법을 호출 할 수 없습니다 정의의 '생성'"

문제는 콘솔에서 나는 예외를 잡을 것입니다 그것을 잘 작동 콘솔. 백그라운드 콘솔 - 표준 콘솔에서 실패 - 실패합니다.

왜?

모든 조언을 주시면 감사하겠습니다. 감사합니다

답변

0

스크립트를 다른 페이지의 컨텍스트에서 실행하려면 content scripts을 사용해야합니다. 그대로, 확장자는 배경 페이지에서만 "실행 중"입니다. 따라서 배경 페이지는 chrome.* 개체에 액세스 할 수 있지만 다른 페이지에는 콘텐츠 스크립트가 삽입 될 때까지 해당 페이지가 표시되지 않습니다.

-1

manifest.json에 대한 권한을 추가 한 후에 확장 프로그램을 다시 설치하려 했습니까?

+0

분명히 문제가 아닙니다. OP는 "백그라운드 콘솔에서 스크립트를 직접 실행하면 제대로 작동합니다" – Xan

관련 문제