Vb.net 类中的 JavaScript 警报

标签 javascript vb.net

我有这个功能:

Public Sub javaMsg(ByVal message As String)
    Dim sb As New System.Text.StringBuilder()

    sb.Append("<script type = 'text/javascript'>")

    sb.Append("window.onload=function(){")

    sb.Append("alert('")

    sb.Append(message)

    sb.Append("')};")

    sb.Append("</script>")

    Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString())
End Sub

我需要将它放入 vb 类中,以便我能够在所有页面中使用它,但我在“Page.ClientScript”上收到错误消息,指出“对非碎片成员的引用需要一个对象”引用”

请问我该如何解决这个问题:)

谢谢!

最佳答案

你总是可以将其更改为;

Public Function javaMsg(ByVal message As String) As String

    Dim sb As New System.Text.StringBuilder()   
    sb.Append("window.onload=function(){")
    sb.Append("alert('")
    sb.Append(message)
    sb.Append("')};")

    return sb.ToString()

End Sub

然后在您的页面上调用;

Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", javaMsg("Hello World"), true)

请注意,有一个重载的 RegisterClientScriptBlock,它实际上为您呈现脚本 block 。

这样你的函数就可以在你想要的任何类中并且不会中断。

或者,您可以将当前页面作为对您的方法的引用传递;

Public Sub javaMsg(ByRef page As System.Web.UI.Page, ByVal message As String)

    Dim sb As New System.Text.StringBuilder()   
    sb.Append("window.onload=function(){")
    sb.Append("alert('")
    sb.Append(message)
    sb.Append("')};")

    page.ClientScript.RegisterClientScriptBlock(page.GetType(), "alert", sb.ToString(), true)

End Sub

并在您的页面上调用;

'' C# does not allow you to pass the page as a Reference type. Not sure if VB.Net does or not
'' So creating a reference to it before passing it in
Dim refPage As System.Web.UI.Page = me.Page
ClassName.javaMsg(refPage, "Hello World")

关于Vb.net 类中的 JavaScript 警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18382381/

相关文章:

JavaScript 选择器

javascript - 在 Typescript 模块中定义类

vb.net - 防止计算机在程序运行时进入休眠/待机/休眠状态

vb.net - CodeDom编译错误 'Forms' is not member of 'Windows' in Windows 8.1

javascript - 关闭弹出窗口时可以刷新父窗口吗?

javascript - 如何将html表单模板编译为html字符串

javascript - 如何使用轴标签实现多重向下钻取

javascript - 更改时验证字段 - datetimepicker

html - asp.net 如何使用超链接将数据从一页显示到另一页

vb.net - 如何以长整数形式存储二进制补码