私の C# コードでは、フォームで WebBrowser コントロールを使用してデータを表示しています。最初に、webViewer.DocumentText = someHtml; を使用してデータを入力します。(1) これは、予想どおり、Navigating、Navigated、および DocumentCompleted イベントのシーケンスを生成します。
その後、後の段階で webViewer.Navigate(new Uri("javascript:myFunction(x,y)")); を呼び出します。(2) 私は Compact Framework を使用しているので、これが JavaScript を呼び出す唯一の方法であることを理解しています。(このディスカッションで見られるように) さて、イベントに関しては、私は Navigating イベントだけを受け取ります。それだけです...、他のイベントではありません。WebBrowser.ReadyState も「読み込み中」のままになります。私はこの行動に少し困惑しています。
この動作がその関数の実際のコンテンツに関連していないことを証明するために、myFunction を最も単純なものに落とし込みました (あたかも無限ループまたはいくつかの重大なエラーが含まれているかのように)。
myFunction が実際に呼び出されている間、ReadyState が Loading 状態でスタックすると、(1) で行われたように DocumentText のそれ以上の更新が妨げられ、それ以上の通常の実行が妨げられます。
このコントロールの使用について何かを見逃したのではないかと思います。自動的に起こらない場合は状態をリセットする方法があるかもしれませんが、アイデアが不足しています。ヒントはありますか?