好的,这太傻了。我将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变量,或者每次都必须跳过这些箍?
答案 0 :(得分:4)
InvokeScriptAsync仅适用于字符串返回值;如果caret_position是一个数字,那么它将导致转换麻烦。也就是说,一个函数{return caret_position;当eval'd时会返回一个数字。所以你需要确保函数返回一个字符串,例如return caret_position.toString();