こんにちは、requirejs でビルドされた js アプリケーションがあります。今、私は他の開発者からの外部ページを持っています。彼は自分のスクリプト、html、css、および私に接続されていない他のものをロードできます。彼のページに接続される私のモジュールの例:
require(['page', 'widgetGame', 'adDynamic'], function (Page, WidgetGame, AdDynamic) {
function PageExternalGame (params) {
var params = params || {};
Page.call(this, params); // call super constructor.
};
PageExternalGame.prototype.gameLoadingComplete = function() {
alert(111);
};
window.yepiExternalPageGame = new PageExternalGame();
return PageExternalGame;
});
そしてここに彼のページの例:
<!DOCTYPE HTML>
<html lang="en"><head>
</head>
<body>
<div id='gameArea'>
<canvas id='canvas0' width='480' height='320' style="position: absolute; "></canvas>
</div>
<script data-main="../../YepiMobileNew/UI/js/pageExternalGame" src="http://requirejs.org/docs/release/2.1.14/minified/require.js"></script>
<script src='js/gamemin.js'></script>
<script>yepiExternalPageGame.gameLoadingComplete()</script>
</body>
</html>
彼のページで、彼は私のオブジェクト yepiExternalPageGame を呼び出します。このオブジェクトは、requirejs によってロードされます。しかし、彼がこのオブジェクトを呼び出すとき、require 自体は既にロードされていますが、クラス pageExternalGame はまだロードされていないため、彼が呼び出したときにこのオブジェクトは存在しません。それをどう扱うか?(彼の外側のスクリプトも私のオブジェクトを呼び出すことができます)。ありがとう。