2017-02-08 24 views
0

Webブラウザコントロールを持つVB.Netフォームアプリケーションがあります。私は文字列としてHTML5ページを作成し、webtrowserにdocumenttextとしてロードしました。これは非常にうまくいく。ユーザーがページ(実際にはD3を使用しているチャート)とやりとりすると、アイテムをドラッグするような変更が加えられました.VB .NetがVBのときに取得できるストレージの形式に転送します.Netは次回にページをリロードしようとします。webbrowserコントロールでjavascriptとVB .netの間で変数を共有する

この状況では、ページはローカルファイルシステムから実行され、サーバーでは実行されないため、Cookieおよびlocalstorageは機能しません。ページ内のjavascriptは、未定義またはnullの参照エラーを返します。

私は変数をリモートのmysqlサーバに転送し、遅くなるのでそれをフェッチしたくありません。私はローカルで実行される解決策を模索しています。

+0

あなたはここで多くのオプションを削除しています。私はそれがサーバー、たとえローカルのIISでさえないなら、どのようにvbを動かすことができるのか分かりません。私が見ることができる唯一の方法は、vb.netファイルへのajax呼び出しを行い、あなたの変数をpost/getとして送信することです。その後、vbはそれをローカルファイルに保存します。これは、データベースを呼び出すよりも最悪に終わる可能性があると主張できます。 –

答えて

0

私はいくつかの調査の後で答えを見つけました。これは、WebブラウザコントロールのObjectForScriptingプロパティを設定することで実行できます。これはhtmlページ上のjavascriptにウィンドウフォームクラスを公開します。クラスのアクセス許可を設定してCOMに表示させる必要があります。 JavaScriptは、window.externalオブジェクトを使用して、クラス内の任意の関数またはオブジェクトを呼び出すことができます。

You could see the implementation in the following page

A very detailed explanation can be found in this page

関連する問題