2012-01-21 10 views
2

Webブラウザーコントロールを備えたVBSアプリケーションがあります。このコントロールでは、JavaScriptを含むHTMLファイルを開きます。このJavaScriptは、次のように変数を値に設定します。WebブラウザーコントロールとJavascriptでのVBSアプリケーション

var clicked = 3; 

この変数をVBSアプリケーションで使用する可能性はありますか?値を返すことはできますか?

ありがとうございました!


私のWebbrowswerコントロールで私はイベントDocumentCompleteを使用しますか? この場合、私は言う:

Dim oScript As Object 
set myVariables = oScript.clicked 

? 複数のグローバル変数がある場合、どのように適切なグローバル変数を選択できますか? そして、この変数をOnClickイベントのjavascriptで設定すると、イベント "DocumentComplete"は正しいものではありませんか? そして、Dim oScript As Objectという行はViszal Basic Sc​​riptで受け付けられませんか?

ありがとうございました!

+0

VBSアプリケーションの意味を詳しく説明できますか? (1)HTAアプリケーション、(2)Webアプリケーション(Webページ)、(3)ASP、(4)CScript/WScript、(5)ScriptHostアプリケーションなどが考えられます。 –

+0

これはVisual Basic Sc​​ript 6.0アプリケーションです。そしてそこに私はWebブラウザコントロールを持つフォームを持っています。だから私はそれがWScriptだと思う。 – user1150177

+0

わかりました。 Visual Basicアプリケーション(VBScriptではなく、あなたの質問は誤解を招きミスマッチ)があります。あなたのjavascriptとVisual Basicアプリケーションの間でコンテンツを共有したいと思っています。 –

答えて

0

この回答はVisual Basic 6.0には当てはまらないかもしれませんが、VB .NETとC#ではWebBrowser1.Document.InvokeScript( "eval"、 "clicked")のようになります。おそらく、Visual Basic 6.0でも同様のことがあります。

0

VB6はレイトバインディング時に優れているため、IDispatchやDISPATCH_PROPERTYGETなどのオートメーション処理は不要です。 Dim oScript As Objectだけで、DocumentCompleteイベントのwebbrowser.document.scriptに設定します。 DocumentCompleteは要素ハンドラを置き換えるのにも適しています。要素イベントをシンクしたい場合はhandle html element eventsを参照してください。その後、oScript.clickedを呼び出してグローバル変数の値を取得できます。つまり、Webブラウザコントロール内にturn on the IE9 modeがなければ、IDispatchExとCOMの狂気に対処する必要があります。

Read Javascript variable from Web Browser controlは、この質問のC#バージョンです。

+0

私の質問はほんの一例でした。私のJavascriptでは、この変数をOnClick-Eventで「クリック」しました。 Webbrowserイベント "DocumentFinished"は正しいものではありませんか? そして、Visual Basicスクリプトでは、「Dim oScript As Object」と言っても意味がないと思います。オブジェクトを作成する必要があると思います。もう少し説明していただけますか? Webbrowserイベントでは、「oScript.clicked」と言っていますか?そして、この.clickedはJavascriptで私の変数ですか? – user1150177

+0

変数を後で設定した場合は、その値を後で確認する必要があります。そして、私はあなたがVBのアプリケーションを持っていると仮定していた、どのようにVBSでActiveXホストを記述しましたか? –

関連する問題