InvokeScript第二次通过抛出异常(第一次有效)



我被分配了解决Windows Phone C#问题的任务,但不幸的是,我从未进行过任何web开发或手机开发,所以我遇到了一些麻烦。经过几个小时的捶胸顿足,我放弃了,来到这里询问。。。希望这个问题不要太模糊,因为我担心它可能是…

这个移动应用程序正在做一些屏幕抓取,其中有这样一行:

wb.InvokeScript ("eval", "document.getElementById('ctl00_ContentPlaceHolder1_textboxFirstName').value = '" + firstName + "';");

第一次它运行得很好,但第二次它崩溃了。错误消息如下:

类型为"System"的异常。Microsoft中出现SystemException。电话Interop.ni.dll,但未在用户代码中处理附加信息:出现未知错误。错误:80020101.

我在遵循这个代码时遇到了问题(我知道我有点不知所措)。有人知道为什么这条线路会在第二次通过时崩溃吗?语法似乎是正确的。如果我注释掉这一行,程序就会在下一行InvokeScript上崩溃。也许你就是不能调用同一行两次?

任何想法都将不胜感激。

谢谢。

我知道这是一个老问题,但我也遇到了类似的问题[1],希望我的发现能帮助其他人。

就像一些背景一样,我试图访问HTML页面中的锚链接,该页面已加载到Web视图控件(webview.NavigateToString("HTML"))。锚可以通过文本块选择(显然是在Web视图之外)。经过一番调查,我得出的结论是,webview控件不喜欢我用来导航到锚点的javascript。

我最初尝试javascript函数很简单,但效果不佳:

function scrollToAnchor(id) { window.location.hash = id; } 

这在第一次时会起作用,但在我再次加载HTML页面之前再也不会起作用。


我最终使用了下面的代码,很简单,但它花了很长时间才找到一致工作的东西(也许更高级的pureJS人员从第一步就知道这一点)。。。

function scrollToAnchor(id) { location.href = id; }

因此,总之,这些错误通常可以归因于错误/不受支持的JS代码。也许先在IE中尝试一下代码,如果它在那里工作,它应该在Windows Phone的网络视图控件中工作。

我的javascript在第一次运行invokescript时就可以工作,但随后的任何尝试都会失败,出现"80020101"异常。[1]

最新更新