从aspx源调用js函数

时间:2012-07-18 14:47:42

标签: c# javascript asp.net

我在代码隐藏中编写了一个Javascript函数,如下所示:

Page.ClientScript.RegisterClientScriptBlock(
    Page.ClientScript.GetType(),
    "MyScript",
    "<script type='text/javascript'>" +
        "var urls="+s +
        "function carousel(params) { ... }" +
    "</script>");

如何调用我在客户端上的代码隐藏中编写的javascript函数&#39;方(在ASPX页面上)?

4 个答案:

答案 0 :(得分:0)

在页面的标记中,您只需要引用该函数 - 通常在事件处理程序中,例如onClick,就像使用任何其他javascript函数一样,并了解您必须提供的功能适当的参数......例如

<input type='button' onclick="carousel(1)"/>

答案 1 :(得分:0)

  

重要提示:虽然这是添加javascript函数的合法方式,但强烈建议不要这样做,因为您要混合使用服务器端和客户端代码。经常这样做会导致难以维护的代码库。

您的功能是全局客户端功能

您的函数在全局范围内定义,因此客户端脚本可以直接访问它:

carousel(params);

但是你必须确保没有其他全局函数覆盖它(如果你一直试图调用它但是得到了意想不到的结果)。

功能仍未定义?

可能有很多原因导致函数未定义。也可能是你的函数有一些语法错误。

反正。您可以随时使用浏览器中的开发工具(Firefox中的Firebug或Chrome中的开发工具)检查全局功能。只需按 F12 即可显示。打开脚本标签并检查......

如果找不到您的功能,您可以通过将代码隐藏在浏览器开发工具的控制台窗口中(当然是清理那些字符串引号)并查看浏览器对它的看法来检查其语法。 :)

答案 2 :(得分:0)

首先,urls变量看起来错了。我不知道这是你真正的代码,但试着在每行末尾的行和换行符。

"var urls='"+s + "';\n"

其次你应该使用Page.GetType()

并且在之后调用你可以像往常一样在你的html页面中将它作为JS函数调用,但如果你想通过ASP.Net页面调用它来注册,你应该使用RegisterStartupScript,因为它是注册的结尾页。

Page.ClientScript.RegisterStartupScript(
    Page.GetType(),
    "callScript",
    "<script type='text/javascript'>" +
        "carousel('"+paramFromServerSide+"');" +
    "</script>");

More From MSDN

答案 3 :(得分:0)

enter image description here 请尝试以下代码

代码背后:

protected void Page_Load(object sender, EventArgs e)
    {
        string s = "Hello"; // change it what ever you have i used it for testing
        Page.ClientScript.RegisterClientScriptBlock(
        Page.GetType(),
       "MyScript",
       "<script type='text/javascript'>" +
        "var urls=" +"'"+s+"';\nfunction carousel() { alert(urls); }" +
        "</script>");     
    }

我使用了Button控件。

<asp:Button ID="Button1" runat="server" OnClientClick="carousel();"  Text="Click Me" />

如果要在JavaScript函数中使用参数

enter image description here 使用以下代码

代码背后:

protected void Page_Load(object sender, EventArgs e)
    {
       string s = "www.stackoverflow.com";
    Page.ClientScript.RegisterClientScriptBlock(
    Page.GetType(),
   "MyScript",
   "<script type='text/javascript'>" +
    "var urls=" +"'"+s+"';\nfunction carousel(param) { alert('param value:'+param+'  s value:'+urls); }" +
    "</script>");         
    }


<asp:Button ID="Button1" runat="server" OnClientClick="carousel(1);" Text="Click Me" />

希望能够帮助你走向正确的方向。