在ASP.Net内部借助VB运行javascript

时间:2013-02-05 07:51:02

标签: javascript asp.net vb.net

我想知道是否有办法在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不能是一个数字,它必须有一个字母数字值

2 个答案:

答案 0 :(得分:1)

您应该使用标准的ASP.NET超链接控件和ScriptManager.RegisterStartupScript,而不是使用Response.Write。然后你可以使用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更容易阅读。

答案 1 :(得分: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)