好吧,这太愚蠢了。我在WebView中加载了一个HTML变量caret_position
我想通过InvokeScriptAsync在我的Windows商店应用程序检索它。这是我所尝试的。
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变量,或者我必须跳过这些箍每次?
InvokeScriptAsync只适用于字符串返回值;如果caret_position是一个数字,那么它将在转换中造成麻烦。也就是说,函数{return caret_position;}将在eval时返回一个数字。所以你需要确保函数返回一个字符串,例如:return caret_position.toString();