WebBrowser网页的javascript,如何获取VB的变量?
注意不是vbscript脚本,是vb6的。

解决方案 »

  1.   

    给你看个例子,比如你的HTM文件是这样的,存在桌面上的js.htm。<SCRIPT LANGUAGE=javascript>
    <!--
    var varValue=["没有内容1","没有内容2","没有内容3"];
    function ShowValue(id)
    {
    alert(varValue[id]);
    }
    -->
    </SCRIPT>
    <input type='button' value='现实变量1' id='B1' onclick='ShowValue(0)'>
    <input type='button' value='现实变量2' id='B2' onclick='ShowValue(1)'>
    <input type='button' value='现实变量3' id='B3' onclick='ShowValue(2)'>
    然后VB程序这样写:Private Sub Command1_Click()
          WebBrowser1.Document.parentWindow.execScript "varValue[0]=""新内容1"";", "javascript"
          WebBrowser1.Document.parentWindow.execScript "varValue[1]=""新内容2"";", "javascript"
          WebBrowser1.Document.parentWindow.execScript "varValue[2]=""新内容3"";", "javascript"
    End Sub
    Private Sub Form_Load()
       WebBrowser1.Navigate "C:\Documents and Settings\Administrator\桌面\js.htm"
    End Sub
    启动VB程序后你可以点击网页上的按钮看看
    然后再点击VB的按钮改变变量内容
    然后再点击网页上的按钮看看变量内容是否改变其实方法就是VB通过调用 execScript 方法执行设置变量内容的语句,很简单的
      

  2.   

    在control site上实现IDocHostUIHandler::GetExternal
      

  3.   

    非常感谢。
    现在有一点不明白:如果VB上这样:
    public text as string
    则如何在javascript上获得此值呢?
      

  4.   

    我这样处理不行的,错在哪了?
    <SCRIPT LANGUAGE=javascript>
    <!--
    var varValue="";
    function ShowValue()
    {
        alert(varValue);
    }
    -->
    </SCRIPT>
    <input type='button' value='现实变量1' id='B1' onclick='ShowValue()'>
    public texts as string
    Private Sub Form_Load()
    texts="ggg"
       WebBrowser1.Navigate "D:\Program Files\Microsoft Visual Studio\VB98\imkf\js.htm"
       WebBrowser1.Document.parentWindow.execScript "varValue=""" & texts & """;", "javascript"
    End Sub
      

  5.   

    代码应该没问题,可能是操作的时间不对。
    比如
    WebBrowser1.Navigate "D:\Program Files\Microsoft Visual Studio\VB98\imkf\js.htm"
    刚刚执行,还没有加载完,你就开始执行
    WebBrowser1.Document.parentWindow.execScript "varValue=""" & texts & """;", "javascript"
    了,会出错或操作无效也是可以理解的。
      

  6.   

    答非所问,人家要动态得到Form中的当前变量。不是你定义一变量传到WebBrowser里去。切!