javascript - 从 javascript 调用 vb.net 函数

标签 javascript vb.net

我想做的是从 javascript 调用 vb.net 函数
这是我的html代码。

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title>Untitled
        Page
    </title>
    <script
    src="jquery.js"></script>
        <script
        type="text/javascript">
            $(function(){
            $("button").click(showVbHelloWorld)
            function
            showVbHelloWorld()
            {
            window.external.showVbHelloWorld();
            }
            })

            </script>
</head>

<body>
    <button>A</button>

</body>

</html>

这是我的 vb.net 代码

Imports System
Imports System.Windows.Forms
Imports System.Security.Permissions

<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> 

<System.Runtime.InteropServices.ComVisibleAttribute(True)>

<Microsoft.VisualBasic.ComClass()> 

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, _

        ByVal e As System.EventArgs) Handles Button1.Click

    Me.WebBrowser1.ObjectForScripting = Me

End Sub

Public Sub showVbHelloWorld()

    MsgBox("Hello")

End Sub

End Class

仍然在按钮点击我得到错误
未捕获的类型错误:对象 # 没有方法“showVbHelloWorld”

抱歉我的代码格式不均匀...我是 stackoverflow 的新手...

最佳答案

这是一个显示如何操作的链接:Call VB method from JavaScript

它基本上说有两种方式,Ajax 或 Postback。这是回传方法:

aspx文件:

<script type="text/javascript">
 <!--
 function callServersideFunction()
 {
  var someValueToPass = 'Hello server';

 __doPostBack('CustomPostBack', someValueToPass);
 }
 // -->
 </script>

aspx.vb 文件:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
  ' Insure that the __doPostBack() JavaScript method is created...
  Me.ClientScript.GetPostBackEventReference(Me, String.Empty)


 If Me.IsPostBack Then
   Dim eventTarget As String
   Dim eventArgument As String

  If ( (Me.Request("__EVENTTARGET") Is Nothing)
    eventTarget = String.Empty
   Else
    eventTarget = Me.Request("__EVENTTARGET"))
   If ( (Me.Request("__EVENTARGUMENT") Is Nothing)
    eventArgument = String.Empty
   Else
    eventArgument = Me.Request("__EVENTARGUMENT"))

  If eventTarget = "CustomPostBack" Then
    Dim valuePassed As String = eventArgument
    ' Call your VB method here...
   End If
  End If
 End Sub

关于javascript - 从 javascript 调用 vb.net 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17122683/

相关文章:

c++ - vb.net 和 c++/clr 数组长度

javascript - 无法从nodejs删除google联系人

vb.net - FxCop 对私有(private)构造函数 CA1823 和 CA1053 发出警告

vb.net - VB.NET 和 Visual Studio Intellisense 中的多行 XML 注释

c# - Web服务是否可以替代Application.DoEvents()

vb.net - 在 VB 窗体上显示 SQL 查询结果

javascript - 使用 css 或 jquery 在图标旁边放置文本

javascript - Three.js FogExp2 的最大距离?

javascript - 奇怪的对象怪癖 - JavaScript - 初学者

php - 需要在 php 中将 $_FILES 转换为 $_POST