2017-01-23 67 views
1

我使用的是Firefox 50.1.0。我創建了以下web擴展: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]); 
    } 
}) 

當我上傳文件功能fileToDataView被調用。

在此函數中,reader.onload記錄new DataView(),但它是一個空的dataView對象,而不是帶有參數e.target.result的dataView。

我做錯了什麼?問題是我想在調用.getInt8()之後但是引發錯誤is not a function

Full code is here

回答

0

恐怕這只是Firefox中的一個bug。我正在修復這個火狐54的過程。

如果你使用不同的TypedArrays來包裝你的ArrayBuffer而不是DataView它應該工作。