好吧,这很愚蠢。我加载到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;" });

这些都不起作用。我可以使它工作的唯一方法是将其写入javascript中的隐藏输入中,然后使用此调用。
return await HtmlEditor.InvokeScriptAsync("eval",
    new string[] { "document.getElementById('this_is_silly').value;" });

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

最佳答案

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

07-24 09:22