2016-08-24 2 views
2

Safari 9.1.2 (10601.7.7)에서 기본 JavaScript 함수가 작동하지 않는 것 같습니다. 아마 내가 뭔가 잘못하고있는 것일까 요? 질문에 ... 지난 일을하는 방법에 대한 조언을JavaScript ArrayBuffer 슬라이스가 Safari 9.1.2에서 명백하게 깨졌습니다.

기능을 찾고 ArrayBuffer.prototype.slice()

가 여기에 크롬과 파이어 폭스에서 잘 작동하는 사용 예입니다,하지만 사파리입니다.

var buffer = new ArrayBuffer(16); 
var bufferView = new Uint8Array(buffer); 
console.log(bufferView.slice(0,8)); // TypeError: bufferView.slice is not a function 
+0

어떤 의미에서는 작동하지 않습니다

대신 bufferView.buffer.slice(), 또는 패치에 의해 쓰여진이 도우미 메서드를 사용할 수 있습니까? 오류가 있습니까? 이상한 일이 생겼습니까? – Pointy

+0

"고장났다"는 것은 무엇을 의미합니까? 오류가 있습니까? 그것은 잘못된 선택을 주는가? –

+0

@Pointy를 실행하면 Safari의 웹 속성에서 다음과 같은 메시지가 표시됩니다. TypeError : bufferView.slice가 함수가 아닙니다. – Patch

답변

3

나는 답으로이 글을 쓰고 있습니다. 모든 관련 사실은 이미 의견 (즉, 커뮤니티 위키)에 있습니다.

.slice()ArrayBuffer이 아니고 이 아니라 개체입니다.

if(!Uint8Array.prototype.slice) 
{ 
    Uint8Array.prototype.slice = function(a,b){ 
     var Uint8ArraySlice = new Uint8Array(this.buffer.slice(a,b)); 
     return Uint8ArraySlice; 
    } 
} 
관련 문제