7

デルファイコードからいくつかのJavaScript関数を実行する必要がありますが、ページがTwebbrowserコントロールにロードされていない場合、この関数は失敗します。したがって、問題は、ページがアクティブでないタブシェットにある場合、タブシートがアクティブになるまでページがロードされないことです。

Twebbrowser問題は、これが表示されていないときにコントロールにページを強制的にロードする方法です。

この動作をテストするには、2つのタブシートを含むページコントロールと2番目のタブシートにtwebbrowserを配置し、フォームのoncreateイベントにこのコードを配置します。

WebBrowser1.Navigate('http://stackoverflow.com');

これで、アプリを実行すると、2番目のタブシートを表示したときにのみページが読み込まれます。

前もって感謝します。

4

2 に答える 2

13

電話WebBrowser1.HandleNeeded;する前に電話するWebBrowser1.Navigate

于 2010-11-14T21:01:03.500 に答える
0

あなたが文書化した行動を再現することはできません。私はあなたの指示に従い、1ページのコントロール、2つのタブ、2番目の(非表示の)タブのWebブラウザーを実行しました。

ページが読み込まれているかどうかを知るために、Webブラウザのいくつかのイベントをキャプチャしました。私はそれを見てonBeforeNavigate、2番目のタブシートを表示することなくすべてが解雇されます。onTitleChangeOnNavigateComplete

これらのイベントのいずれかで実行するようにJavaScriptコードを設定すると、問題が解決する場合があります。

于 2010-11-14T20:26:59.167 に答える