DOBON.NETプログラミング道掲示板

[ 最新記事及び返信フォームをトピックトップへ ]

■33835 / inTopicNo.1)  VB.NetのWebBrowserでJavaScriptを呼び出したい
  
□投稿者/ さむず 一般人(1回)-(2018/04/24(Tue) 12:09:21)
  • アイコン環境/言語:[VB.Net 2010] 
    分類:[.NET] 

    VB.Net2010のWebBrowserでJavaScriptを呼び出す時に、オブジェクトを渡したいのですが、
    方法が判りません

    下記例では、関数にフォームを渡すサンプルHTMLです
    ボタンをクリックすると、値を表示します

    <SCRIPT language=JavaScript>
    <!--
    function test1(docSrc) {
    alert(docSrc.hoge.value);
    }
    -->
    </SCRIPT>

    <FORM method=post name=SFORM>
    <INPUT type=hidden name=hoge value='testmessage_1'><br>
    <INPUT type=button onClick=test1(self.SFORM); value='test1_exec'><br>
    </FORM>

    これを、VB.Netより呼び出す時、下記の様な記述ではスクリプトエラーとなって
    しまいますが、どう記述すれば良いのでしょうか?

    WebBrowser1.Document.InvokeScript("test1", {IE.Document.All("SFORM")})
    WebBrowser1.Document.InvokeScript("test1", {"self.SFORM"})

マルチポストを報告
違反を報告
引用返信 削除キー/
■33836 / inTopicNo.2)  Re[1]: VB.NetのWebBrowserでJavaScriptを呼び出したい
□投稿者/ Hongliang 大御所(542回)-(2018/04/24(Tue) 12:42:29)
  • アイコン> WebBrowser1.Document.InvokeScript("test1", {IE.Document.All("SFORM")})
    IEって何のオブジェクトでしょうか。

    とりあえず同じWebBrowser1.Document上の要素を渡すとすると、
    WebBrowser1.Document.All("SFORM").DomElement
    のように要素を指すHtmlElementオブジェクトのDomElementプロパティを渡す必要があります。
    DomElementが返すものが内部で使用されているもので、それを.NETから扱えるようにラップしたのがHtmlElement、という感じです。

    あるいは全部evalでやっちゃうというのも。
    .InvokeScript("eval", { "test1(self.SFORM)" })
違反を報告
引用返信 削除キー/
■33837 / inTopicNo.3)  Re[2]: VB.NetのWebBrowserでJavaScriptを呼び出したい
□投稿者/ さむず 一般人(2回)-(2018/04/24(Tue) 23:59:53)
  • アイコン2018/04/25(Wed) 00:02:08 編集(投稿者)

    失礼しました。IE→WebBrowser1、でした

    そしてありがとうございます。下記の方法でできました。

    WebBrowser1.Document.InvokeScript("test1", {WebBrowser1.Document.All("SFORM").DomElement})
    それと、evalの方法でも成功しました
    困っていたので本当に感謝いたします。

    ただDomElementが何者なのか全く判らず、evalも始めて知ったのですが、
    こういった事を学習するには何を勉強すれば良いのでしょうか?
    調べた時は、DOM?とかのキーワードが出てきますが、そういう書籍等を
    購入すれば良いのか、JavaScriptを学習すれば良いのかも判りませんが、
    もしこういうものを学習すれば良いというものがあればご教授ください
解決み!
違反を報告
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Mode/  Pass/


- Child Tree -