2013-07-07 3 views
1

백그라운드에서 Blob 객체를 생성 한 Chrome 확장 프로그램을 작성 중입니다. 이제 콘텐츠 스크립트가있는 메인 페이지로 전달되는 메시지를 통해이 객체를 보내려고합니다.메시지 전달을 통해 Blob 객체를 전달하는 방법은 무엇입니까?

Blob을 직접 전송하는 것은 불가능합니다. Blob을 다른 곳에서 일반 Object로 처리하기 때문에 Blob의 내용을 실제로 보내는 가장 좋은 방법은 무엇입니까?

편집 : 나는

  • 를 원하는 것을 확실히 내가 원래 BLOB으로 정확히 같은 내용으로 수신 측에 물방울을 원하는 보낸 사람의 측면
  • 에 물방울을 확인합니다. 동일한 객체 일 필요는 없습니다.

관련 문서 :이 방법에 대해 http://developer.chrome.com/extensions/messaging.html

+1

"가능한 복제본"의 방법에는이 작은 경고가 있습니다. - * 경고 :이 방법은 소량의 데이터에 대해서만 작동합니다. 형식화 된 배열의 크기가 125836을 초과하면 RangeError가 발생합니다. 대용량 데이터를 처리해야하는 경우 다른 방법을 사용하여 입력 된 배열과 일반 배열 간의 변환을 수행하십시오. * - 그 것은 나를위한 거래 차단기입니다. –

답변

2

?

blob = new window.Blob(["a", "b", 3, "c"], { 
    "type": 'text/plain' 
}); 
href = URL.createObjectURL(blob); 

그러면 메시지의 blob에 href를 보낼 수 있어야합니다.

+1

동일 원점 정책으로 인해 작동하지 않습니다. 확장 프로그램에 ''권한이 있어도 다른 도메인에서 'blob :'-URI를 읽을 수 없습니다. –

+0

저를 위해 일하십시오! 그것은 내가 묻고있는 질문에 대답하지 않지만 실제로 * 필요한 것이 무엇인지 말해줍니다. 감사! –

+0

좋아, 이제 정말 이상 하네. 여전히 BLOB을 보내고 다른 쪽에서 무언가를 사용하려면 가장 쉬운 방법은 URL을 생성하고 다른 쪽에서 XML HTTP 요청으로 다시 다운로드하는 것입니다. 그게 완전히 해킹 된 느낌이지만 최선을 다합니다. –

관련 문제