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

时间:2014-07-28 09:15:56

标签: javascript webview windows-store-apps invokescript

好的,这太傻了。我将HTML中的现有变量加载到我的WebView中,称为caret_position

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

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

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

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

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

有没有办法可以直接访问javascript变量,或者每次都必须跳过这些箍?

1 个答案:

答案 0 :(得分:4)

InvokeScriptAsync仅适用于字符串返回值;如果caret_position是一个数字,那么它将导致转换麻烦。也就是说,一个函数{return caret_position;当eval'd时会返回一个数字。所以你需要确保函数返回一个字符串,例如return caret_position.toString();