0

requirejsを使用する外部ライブラリを使用しています。その動作はわかりませんが、FileErrorは他のブラウザまたはFF8のグローバルスコープにありますが、FF14/15ではFileError not defined.

define(function (require, exports, module) {   
   "use strict";
    var Async = require("utils/Async");
    var NativeFileSystem = {
    /**
     * LOT OF CODE HERE
     * ...
     * ...
     * ...
    */       
    /** class: FileError
     *
     * Implementation of HTML file API error code return class. Note that we don't
     * actually define the error codes here--we rely on the browser's built-in FileError
     * class's constants. In other words, external clients of this API should always
     * use FileError.<constant-name>, not NativeFileSystem.FileError.<constant-name>.
     *
     * @constructor
     * @param {number} code The error code to return with this FileError. Must be
     * one of the codes defined in the FileError class.
     */
    NativeFileSystem.FileError = function (code) {
        this.code = code || 0;
    };
    /**
     *THIS FIX THE PROBLEM BUT IT A HACK
     *window.FileError = NativeFileSystem.FileError;
     */
    // Define public API
    exports.NativeFileSystem    = NativeFileSystem;
});

もちろん window.FileError = NativeFileSystem.FileError; 、関数定義の後に追加すると、正常に機能します。しかし、私はライブラリをハックしたくありません ファイルの完全なソースはここにあります

4

1 に答える 1

1

ブラケットは、エラーコード定数についてのみFileErrorクラスに依存します。

FileAPIはまだドラフト仕様http://www.w3.org/TR/FileAPI/であり、NativeFileSystemを最初に作成してから、FileErrorがDOMErrorに変更されたようです。この依存関係を削除し、独自の同等のFileError定数を定義して、依存関係を削除することができます。FileAPIに基づいてAPIをモデル化しようとしましたが、それは動くターゲットでした。

于 2012-10-19T16:22:42.933 に答える