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を設定します。
それで。質問は誰が間違っているのですか?私は恐ろしいエンジンの原理を理解していないかもしれないので、私は可能性があります。それともバグですか?
よろしく!