从页面代码调用Javascript函数

问题描述:

我有一个脚本,我想在5次页面浏览后弹出一个窗口。 java脚本可以在default.aspx页面上正常工作,并带有一个链接来调用它。但是我想在我的会话var count达到5后从我的default.aspx.cs页面启动它。我该怎么做?可能吗?从页面代码调用Javascript函数

的Default.aspx

<script type="text/javascript"> 
    window.name = "Register"; 
    function popWin(link) { 
     var w = window.open(link.href, link.target, 'width=500,height=600,resizable'); 
     return w ? false : true; // if popup blocker, use the default behaviour of the link 
    } 
</script> 

Default.aspx.cs页面

if (Session["PagesViewed"].ToString() == "5") 
      { 
       //Call my Javascript function How????? 

      } 

可以输出的JavaScript到您的代码后面LiteralControl

的.aspx:

<asp:Literal id="myLiteral" runat="server" /> 

后面的代码:

myLiteral.Text = "<script type='text/javascript'>popWin('url');</script>"; 

当渲染这种方式,输出脚本将调用函数 - 确保它在除函数定义,以确保它存在的页面下。

+0

我试过上面的代码,我得到这个错误。 Microsoft JScript运行时错误:'popWin'未定义 – CsharpBeginner 2011-12-31 20:28:25

+0

@CsharpBeginner将''放在脚本之后,如答案中所述 – xandercoded 2011-12-31 20:31:33

您不能直接从C#调用JavaScript函数。但是,您可以做的是将<script>传递给执行该功能的浏览器。

response.Write("<script>popWin(something);</script>"); 

在ASP.Net,你可以做到以下几点:

Page.ClientScript.RegisterStartupScript(
    this.GetType(), 
    "openpopup", 
    "popWin('www.someurl.com');", 
    True); 

如果您需要更多的控制脚本放置@Oded有更好方法 - 如试图调用具有功能没有被定义是不是一个好主意...