winfrom中用webbrowser嵌入html网页
在正常情况下调用是没有问题的 
 
        [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
        private void button2_Click(object sender, EventArgs e)
        {
            bmapBrowser.Document.InvokeScript("showMarker", new object[] { num });
        }但是在线程中调用会报错
            System.Timers.Timer t = new System.Timers.Timer(1000);            t.Elapsed += new System.Timers.ElapsedEventHandler(theout);
            t.AutoReset = true;
            t.Enabled = true;        [PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
        [System.Runtime.InteropServices.ComVisibleAttribute(true)]
        private void theout(object source, System.Timers.ElapsedEventArgs e)
        {
            bmapBrowser.Document.InvokeScript("showMarker", new object[] { num });
        } 我试着调用了以下不带参数的方法  如bmapBrowser.Document.InvokeScript("clear");  一样会报错  初步判断在线程中不可调用js的函数    求解决方法   拜谢

解决方案 »

  1.   

    js:       <script type="text/javascript">        function ss() {            alert("底层调用js,调用成功!");        }        //这个方法用了调用隐藏按钮        function xx() {            document.getElementById("Button2").click();        }      </script>html:
       <asp:Button ID="Button1" runat="server" Text="底层调用js" onclick="Button1_Click" />
            <hr />
            <input type="button" value="js调用底层" onclick="xx();" />
            <asp:Button ID="Button2" runat="server" Text="我是隐藏按钮" onclick="Button2_Click" style="display:none;"/>
            <hr />
    CS:    //底层调用js
        protected void Button1_Click(object sender, EventArgs e)
        {
            Page.ClientScript.RegisterStartupScript(ClientScript.GetType(), "gg", "<script>ss(); </script>");
        }
        
        //后台方法
        public void showval()
        {
            Response.Write("js调用后台方法成功!");
        }
        //隐藏按钮事件
        protected void Button2_Click(object sender, EventArgs e)
        {
            showval();
        }
      

  2.   

    js本身是没错的   而且如果是在js里面实现定时器效果我也实现了   在winform里面调用也没问题 我现在想知道我问的为什么不能实现  有没有方法可以实现