0

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

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

如何调用我在客户端(在 ASPX 页面级别)的代码隐藏中编写的 javascript 函数?

4

4 回答 4

0

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

<input type='button' onclick="carousel(1)"/>
于 2012-07-18T14:52:41.523 回答
0

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

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

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

carousel(params);

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

功能还没有定义?

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

反正。您始终可以使用浏览器中的开发工具(Firefox 中的 Firebug 或 Chrome 中的开发工具)检查全局功能。只需按下F12它就会出现。打开脚本标签并检查...

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

于 2012-07-18T14:53:14.260 回答
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>");

更多来自 MSDN

于 2012-07-18T15:12:53.877 回答
0

在此处输入图像描述 试试下面的代码

代码背后:

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 函数中使用参数,

在此处输入图像描述 请使用以下代码

代码背后:

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" />

完全希望它会帮助你走向正确的方向。

于 2012-07-18T15:47:00.433 回答