1

Awesomiumチャットで質問しようとしていますが、回答が得られません。それで。このコードを試してみましょう:

JSObject jso1 = webView.CreateGlobalJavascriptObject("Super1");
JSObject jso2 = webView.CreateGlobalJavascriptObject("Super2");
webView.ExecuteJavascript("Super2 = function() { return 555; }");
JSValue val = webView.ExecuteJavascriptWithResult("Super2();");

デバッガーを使用してトレースすると、jso2はまだ作成されていませんが、jso1は作成されていることがわかります。したがって、val2が555に設定されることはありません。

これを試してみましょう:

webView.CreateGlobalJavascriptObject("Super1");
JSObject jso2 = webView.CreateGlobalJavascriptObject("Super2");
webView.ExecuteJavascript("Super2 = function() { return 555; }");
JSValue val = webView.ExecuteJavascriptWithResult("Super2();");

Super2が作成されますが、機能に割り当てられません。valは未定義になります(555ではありません)。

に対して:

webView.CreateGlobalJavascriptObject("Super1");
webView.CreateGlobalJavascriptObject("Super2");
webView.ExecuteJavascript("Super2 = function() { return 555; }");
JSValue val = webView.ExecuteJavascriptWithResult("Super2();");

完璧に動作します!このコードは2つのオブジェクトを作成し、Super2を関数として割り当てます。valは、コード実行後に555を設定します。

それで。質問は誰が間違っているのですか?私は恐ろしいエンジンの原理を理解していないかもしれないので、私は可能性があります。それともバグですか?

よろしく!

4

0 に答える 0