requirejs导出在firefox 15中不起作用

时间:2012-10-19 14:10:21

标签: javascript requirejs adobe-brackets

我使用的外部库使用了我不知道的requirejs 它的工作原理,但FileError在其他浏览器的全局范围内 或者在FF8中但在FF 14/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; 功能定义其工作正常。但我不想破解图书馆 The full source of the file is here

1 个答案:

答案 0 :(得分:1)

Brackets仅针对错误代码常量依赖FileError类。

FileAPI仍然是草案规范http://www.w3.org/TR/FileAPI/,看起来他们在我们最初编写NativeFileSystem之后的时间里已经将FileError更改为DOMError。我们可以删除此依赖项并定义我们自己的等效FileError常量以删除依赖项。我们试图在FileAPI之后对API进行建模,但它一直是一个移动目标。