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 会。因此,val 2 永远不会设置为 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();");

完美运行!此代码创建两个对象并将 Super2 分配为函数。val 在代码执行后设置 555。

所以。问题是谁错了?可能是我,因为我可能不了解 awesomium 引擎的原理。还是它的一个错误?

问候!

4

0 回答 0