C# InvokeScript第二次抛出异常(第一次有效)

C# InvokeScript第二次抛出异常(第一次有效),c#,windows-phone-8,invokescript,C#,Windows Phone 8,Invokescript,我被指派解决一个Windows Phone C#问题,但不幸的是,我从未做过任何web开发或手机开发,所以我遇到了一点麻烦。经过几个小时的奋力拼搏,我放弃了,来到这里问。。。希望这个问题不要太模糊,因为我担心它可能是 此移动应用程序正在进行屏幕抓取,其中包含以下内容: wb.InvokeScript ("eval", "document.getElementById('ctl00_ContentPlaceHolder1_textboxFirstName').value = '" + firstN

我被指派解决一个Windows Phone C#问题,但不幸的是,我从未做过任何web开发或手机开发,所以我遇到了一点麻烦。经过几个小时的奋力拼搏,我放弃了,来到这里问。。。希望这个问题不要太模糊,因为我担心它可能是

此移动应用程序正在进行屏幕抓取,其中包含以下内容:

wb.InvokeScript ("eval", "document.getElementById('ctl00_ContentPlaceHolder1_textboxFirstName').value = '" + firstName + "';");
它在第一次运行时非常完美,但第二次运行时,它崩溃了。错误消息如下:

Microsoft.Phone.Interop.ni.dll中发生“System.SystemException”类型的异常,但未在用户代码中处理 其他信息:发生未知错误。错误:80020101

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

任何想法都将不胜感激


谢谢。

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

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

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

function scrollToAnchor(id) { window.location.hash = id; } 
这将在第一次工作,但永远不会再次,直到我再次加载HTML页面


我最终使用了下面的代码,虽然很简单,但却花了很长时间才找到一个稳定工作的代码(也许更高级的pureJS人员会从第一步就知道这一点)


因此,总而言之,这些错误通常可以归因于错误/不受支持的JS代码。也许先试试IE中的代码,如果它在那里工作,它应该在WindowsPhone的webview控件中工作


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

只是一个想法-尝试使用转义双引号而不是单引号。我认为InvokeScript可能会生成类似于
eval(“…”)
的东西,在这种情况下,您的单引号会爆炸。谢谢您的回复,bhamlin,但不必了。我试过了,但第二次还是爆炸了。第一次还可以。
function scrollToAnchor(id) { location.href = id; }