2015-02-03 4 views
4

chrome.tabs.captureVisibleTab을 사용하여 페이지의 보이는 영역을 캡처하려고합니다.chrome.tabs.captureVisibleTab을 사용한 스크린 샷

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) { 
    if (request.name == 'screenshot') { 
     chrome.tabs.captureVisibleTab(null, null, function(dataUrl) { 
      sendResponse({ screenshotUrl: dataUrl }); 
     }); 
    } 
}); 

하지만 탭을 포착하려고 할 때이 오류가 얻을 : tabs.captureVisibleTab을 실행하는 동안

체크되지 runtime.lastError을 다음 'activeTab의 허락이 여기에 호출을 코드입니다 이 확장이 호출되지 않았기 때문에 효과가 없습니다. 내가 <all_urls>

  • 일치하고있어
  • 통화가 배경 스크립트에서 이루어지고

    { 
        "manifest_version": 2, 
    
        "name": "Empathy", 
        "version": "0.1", 
    
        "description": "Simulate accessibility issues for websites.", 
    
        "browser_action": { 
        "default_icon": "empathy19.png", 
        "default_title": "Empathy!" 
        }, 
    
        "permissions": [ 
        "activeTab", 
        "contextMenus", 
        "desktopCapture", 
        "tabCapture", 
        "tts" // Text-to-speech 
        ], 
    
        "background": { 
        "scripts": [ 
         "boot.js" 
        ], 
        "persistent": false 
        }, 
    
        "content_scripts": [ 
        { 
         "matches": ["<all_urls>"], 
         "js": [ 
         "src/helpers.js", 
         "src/colorblindness.js", 
         "lib/colorvision.js", 
         "lib/html2canvas.js" 
         ] 
        } 
        ] 
    } 
    
    • 내가 가지고있는 활성 탭 권한 : 여기

      내 매니페스트 파일입니다

      왜 그 오류가 발생합니까?

  • +1

    아마도이 사본과 중복 될 수 있습니다 : http://stackoverflow.com/questions/25964869/chrome-screenshot-works-only-when-extension-is-clicked – gui47

    +0

    나는 all_urls 권한을 사용하고 있으므로 답변에 ' 정말 내 질문에 딱 맞았다. –

    +1

    하지만 매니페스트의 "사용 권한"에는 ""이 없습니다. – gui47

    답변

    5

    일치하는 항목으로 <all_urls>에 대한 이야기가 있지만, 내가 누락 한 내용은 <all_urls>입니다. 권한을 추가 한 후 작동했습니다.

    +0

    감사 ... 문제가 해결되었습니다. – kplshrm7