2017-01-23 14 views
1

私はFirefox 50.1.0を使用しています。私は機能fileToDataViewが呼び出されるのファイルをアップロードするとWebextension DataViewコンストラクタが動作しない

manifest.jsonを

{ 
    "content_scripts": [ 
    { 
     "matches": ["http://exifdata.com/"], // sample site 
     "js": ["index.js"] 
    } 
    ], 
    "manifest_version": 2, 
    "name": "Test", 
    "version": "0.0.0" 
} 

index.js

function fileToDataView(file) { 
    var reader = new FileReader(); 
    reader.onload = function (e) { 
    console.log(new DataView(e.target.result)); // empty Dataview 
    }; 
    reader.onerror = function (error) { 
    console.log(error); // no error occurs 
    }; 
    reader.readAsArrayBuffer(file); 
} 

var nodes = document.querySelectorAll('input[type=file]') 

nodes.forEach(function (node) { 
    node.onchange = function (event) { 
    fileToDataView(event.target.files[0]); 
    } 
}) 

:私は、次のWeb拡張機能を作成しました。

この関数では、reader.onloadはnew DataView()を記録しますが、パラメータe.target.resultを持つdataViewの代わりに空のdataViewオブジェクトです。

私は何か間違っていますか?問題は.getInt8()の後に電話したいが、エラーis not a functionがスローされるということです。

フルコードはhereです。

答えて

0

Firefoxではこれは単にbugです。私はこれをFirefox 54のために修正しています。

DataViewの代わりにArrayBufferをラップするために異なるTypedArraysを使用する場合、それはうまくいくはずです。