SDKを使用して別のプログラムの拡張機能をビルドしようとしています。コードはJavaScriptで書かれています。私のコードがこの変数にアクセスできないのはなぜですか?
SDKのビルトインrequireJS機能を使用して外部ライブラリ(Highcharts)にロードしています。
しかし、ハイチャート変数にHighcharts変数にアクセスしようとすると、ブラウザでその変数が定義されていないとわかります。
私はconsole.log(これ)を自分のコードに書き込んだ後、ロードしておかなければならず、画像の下の出力を見ることができます。ハイチャートが読み込まれたようです。 console.log(EPCMPROXY)を試してみると、私はそのオブジェクトを取得しますが、console.log(Highcharts)を試してみると、私は定義されません。ブラウザウィンドウのコンソールを開き、ハイチャートを手動で入力すると、オブジェクトが返されます。間違ったことをやっているのですか、Highchartsを間違って参照していますか?同じ範囲にいるとき、私は1つのオブジェクト(EPCMPROXY)にアクセスできますが、他のオブジェクト(ハイチャート)にはどのようにアクセスできますか?
コード:はconsole.logの
console.log(this);
console.log(Highcharts);
console.log(EPCMPROXY); //some var generated by the page, used as example here
出力(本):はconsole.logの
undefined
出力:にconsole.log(Highcharts)の
j {owner: f, init: function, componentDeleted: function, beforeUpdate: function, afterUpdate: function…}
$:function()
arguments : null
caller : null
length : 0
name : ""
prototype : Object
__proto__ : function()
[[FunctionLocation]] : combined_static_includes_1.jsversion=20170105152024:25
[[Scopes]]:Scopes[2]
0 : Closure (a)
1 : Global
$ : function (e,i)
AsyncHandleJavascriptError : function AsyncHandleJavascriptError(a)
EPCMPROXY : Object
ES6Promise : Object
Highcharts : Object
出力(EPCMPROXY):
Object
...
コードの[mcve]はできますか? – evolutionxbox
RequireJSを使用している場合は、ハイチャートをモジュールとしてロードしたいと考えています。 –
@evolutionxboxコードを追加しましたが、コードがここでのポイントではないと思います。ポイントは明確にそこにあるときにハイチャートを正しく参照するにはどうすればいいのですか(それは私のために働いていないようです)。 –