在我的C#代码中,我在表单中使用WebBrowser控件来显示我的数据。 最初我通过一个填写我的数据 webViewer.DocumentText = someHtml; (1) 这个按预期产生导航,导航和DocumentCompleted事件的序列。
然后在稍后阶段我打电话给 webViewer.Navigate(new Uri(“javascript:myFunction(x,y)”)); (2) 因为我在Compact Framework上,所以我知道这是调用一些javascript的唯一方法。 (见this discussion) 现在,就事件而言,我只收到导航事件,就是它......而不是其他事件。 WebBrowser.ReadyState也将永远保持“正在加载”状态。我对这种行为感到有点困惑。
我已经将myFunction简化为最简单的一个,以证明此行为与该函数的实际内容无关(就好像它包含无限循环或一些严重错误)。
虽然确实调用了myFunction,但ReadyState处于加载状态会阻止DocumentText的进一步更新,如(1)中所做的那样,这会阻止进一步的正常执行。
我想我可能已经错过了使用这个控件的一些东西,也许有一种方法可以重置它的状态,如果它不会自动发生,但我的想法已经用完了。任何提示?