我在代码隐藏中编写了一个Javascript函数,如下所示:
Page.ClientScript.RegisterClientScriptBlock(
Page.ClientScript.GetType(),
"MyScript",
"<script type='text/javascript'>" +
"var urls="+s +
"function carousel(params) { ... }" +
"</script>");
如何调用我在客户端上的代码隐藏中编写的javascript函数&#39;方(在ASPX页面上)?
答案 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>");
答案 3 :(得分: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" />
希望能够帮助你走向正确的方向。