0
我使用使用requirejs的外部庫我不知道 它的工作如何,但FileError在其他瀏覽器 或FF8中的全局範圍內,但在FF 14/15中說FileError not defined.
requirejs導出在Firefox中不起作用15
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
我發現這個https://github.com/jrburke/requirejs/wiki/Differences-between-the-simplified-CommonJS-wrapper-and-standard-AMD-define#wiki-exports說屬性添加到' exports'對象將位於模塊的公共接口上,不需要返回任何值。 –
這對我來說不是很清楚你如何試圖訪問'FileError'對象,也許你可以發佈一個實際拋出錯誤的代碼的例子。 –
問題不是'FileError'實現的代碼更大,是必須在全局範圍內定義的,並且不是在所有瀏覽器中都是這樣做的,即庫爲從adobe-bracket項目嵌入的chrome創建,但requirejs是爲所有瀏覽器 –