J'ai utilisé RequireJS et cela fonctionne parfaitement. J'utilise beaucoup de "window.document" pour manipuler différents éléments DOM, mais quand j'essaie de l'optimiser avec r.js
je reçois un ReferenceError: window is not defined
qui se produit uniquement avec r.js
."ReferenceError: fenêtre n'est pas définie" lors de la compilation avec r.js
Voici un exemple minimal de code qui reproduit la question:
index.html
:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body >
<div id="commentbox">
</div>
<script data-main="code/main" src="code/require.js"></script>
</body>
</html>
main.js
:
require(["roomManager"], function (roomManager){
return {
}
});
roomManager.js
:
define(["commentManager"], function(commentManager){
var commentHand = new commentManager.commentHand();
commentHand.init();
return{
}
});
commentManager.js
:
define([], function(){
function commManager(getDisplayIdVariable){
var messagebox = window.document.getElementById("commentbox");
this.init = function(){
messagebox.innerHTML = "hi!";
}
}
return{
commentHand : commManager
}
});
Cette version fonctionne correctement sans r.js
mais lorsque je tente de le compiler en exécutant r.js main.js
. Je reçois ceci:
var messagebox = window.document.getElementById("commentbox);
ReferenceError: window is not defined
at new new commManager