1

我想知道有没有办法在 vb 的帮助下运行 javascript 代码

page:test1.aspx
<a href="#" onclick="Popup=window.open('testopen.aspx?jack=hello','Popup','toolbar=yes,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=420,height=400,left=430,top=23'); return false;">Test Window</a>


页:test2.aspx.vb

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim check As String = "<a href='#' onclick='Popup=window.open('make_changes_form.aspx','Popup','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=420,height=400,left=430,top=23'); return false;>Test Window from vb</a>"
    Context.Response.Write(check)
End Sub


page test1.aspx现在工作 的代码
我想如果有办法让它工作,page:test2.aspx.vb因为当前的方法不适合我。谢谢
编辑
我试图这样做的原因是因为我不能通过
例如传递整数来使用 javascript 中的函数

Javascript
 function hello (str1)
  {
     alert(str1)
      alert ("hello world")    
   }

aspx code
    <input type="text" id="2">
    <a href="#" onClick="hello(2.value)">CheckFunction</a>


这就是为什么我不能使用函数,因为函数不会激活,因为 id 不能是数字,它必须有一个字母数字值

4

2 回答 2

1

使用 Firebug,我注意到标签没有与 javascript 一起使用,所以我创建了一个单独的函数并从事件 onclick 调用它,它对我来说很好。

尝试这个:

    Dim check As String = "<a href='#' onclick='OpenPopUp()'>Test Window from vb</a>"
    Context.Response.Write(check)
    jscript += "<script language='JavaScript'>"
    jscript += "function OpenPopUp() {"
    jscript += "window.open('popup_to_be_oppened.aspx', '', 'resizable=no , menubar=no, scrollbars=yes, width=290, height=480');"
    jscript += "} </script>"
    Context.Response.Write(jscript)

此外,您将不得不使用 hello(document.getElementById('2').value而不是hello(2.value)

于 2013-02-05T09:20:25.960 回答
1

与其使用 Response.Write,不如使用标准的 ASP.NET 超链接控件和ScriptManager.RegisterStartupScript。然后你可以使用 jQuery 来触发警报:

在您的页面上:

<asp:HyperLink runat="server" ID="lnkPopup" ClientIDMode="Static" NavigateUrl="#">Show Popup</asp:HyperLink>

在您的代码隐藏中:

Dim js = <js>$(document).ready(function () {
    $('#lnkPopup').bind('click', function () {
        alert('Some text');
    });
});</js>.Value
ScriptManager.RegisterStartupScript(Me, GetType(Page), "jsPopup", js, true);

实际的脚本是一个多行文字,这使得它在 VB.NET 中更易于阅读。

于 2013-02-05T08:05:54.587 回答