<%@ Page Language="C#" AutoEventWireup="true" %>
<%
string paramString = Request.QueryString["query"];
if (null != paramString)
{
if (paramString.ToLower() == "ValueIsRight".ToLower())
{
//Here I want to invoke ABC function below defined in my asp page
}
}
%>
<script type="text/javascript">
function ABC {
}
</script>
我是ASPX的新手,想知道是否还有这个函数?我尝试使用call
关键字,但它没有出现在我的IDE中。
答案 0 :(得分:1)
据我所知,你不可能真的这么做。在为客户端的请求发送html之前,c#在服务器上运行,因此运行该javascript函数将要求服务器运行自己的javascript引擎,而ASP不会。你能做什么,是javascript的标志变量,所以当客户端加载时,它可以根据你传入的标志以不同的方式运行。例如
<script type="text/javascript">ABC(<%: someFlag.toString() %>)</script>
会将该变量传递给您的脚本以运行!
答案 1 :(得分:0)
最基本和最危险的方式是
<script type="text/javascript">
function ABC {
}
</script>
<%@ Page Language="C#" AutoEventWireup="true" %>
<%
string paramString = Request.QueryString["query"];
if (null != paramString)
{
if (paramString.ToLower() == "ValueIsRight".ToLower())
{
Response.Write("<script>");
Response.Write("ABC();");
Response.Write("</script>");
//Here I want to invoke ABC function below defined in my asp page
//dont use this method
}
}
%>
/////////端///////////// 注意:javascript函数定义在开始。
请使用ScriptManager.RegisterStartupScript
要更详细地了解访问http://www.dotnetcurry.com/showarticle.aspx?ID=200
在客户端上获取查询字符串
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}