通过InvokeScriptAsync从WebView返回现有的javascript变量

ror*_*yok 2 javascript webview invokescript windows-store-apps

好的,这很愚蠢。我加载到WebView的HTML中有一个现有变量,称为caret_position

我想通过Windows Store应用中的InvokeScriptAsync检索它。这是我尝试过的。

return await HtmlEditor.InvokeScriptAsync("eval", 
    new string[] { "return caret_position;" });

return await HtmlEditor.InvokeScriptAsync("eval", 
    new string[] { "caret_position;" });
Run Code Online (Sandbox Code Playgroud)

这些都不起作用。我可以使它工作的唯一方法是将其写入javascript中的隐藏输入中,然后使用此调用。

return await HtmlEditor.InvokeScriptAsync("eval", 
    new string[] { "document.getElementById('this_is_silly').value;" });
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以直接访问javascript变量,还是每次都必须跳过这些箍?

Kra*_*SFT 5

InvokeScriptAsync仅适用于字符串返回值;如果caret_position是一个数字,则将在转换中引起麻烦。即,一个函数{return caret_position; }在评估时将返回一个数字。因此,您需要确保该函数返回一个字符串,例如return caret_position.toString();。