从codebehind中的javascript函数中检索值
如何在代码隐藏中,在页面加载时从javascript函数中检索值.javascript函数如:
function isIFrame() { var isInIFrame = (top.location != self.location); if (isInIFrame) { return "inside"; } else { return "outside"; } }
和代码背后像:
protected void Page_Load(object sender, EventArgs e) { string resutOfExecuteJavaScript = ""; // resutOfExecuteJavaScript = isIFrame(); // from javascript if (resutOfExecuteJavaScript == "inside") { // do something } else { // do something } }
谢谢。
您无法直接从服务器端代码调用客户端javascript方法。 首先,您需要将函数结果赋值给某个隐藏变量的值,然后在服务器端访问它
假设你有一个像这样的隐藏字段
然后你可以设置如下的值
document.getElementById("hdnVal").value=isIFrame();
然后在服务方
string resutOfExecuteJavaScript = hdnVal.Value;
使用_doPostBack,你可以解决这个问题
在代码后面部分
protected void Page_Load(object sender, EventArgs e) { this.ClientScript.GetPostBackEventReference(this, "arg"); if (IsPostBack) { string eventTarget = this.Request["__EVENTTARGET"]; string eventArgument = this.Request["__EVENTARGUMENT"]; if (eventTarget != String.Empty && eventTarget == "callPostBack") { if (eventArgument == "inside"){ //do something } else if(eventArgument == "outside") { //do something } } else { // set the button click btnclick.Attributes.Add("onClick", "isIFrame();"); } }
以下链接将帮助您获得更多想法。
在javascript文件或您的脚本中添加:
function SetHiddenVariable() { document.getElementById(inpHide).value= "value"; }
在.aspx中添加此标签:
在aspx.cs(c#文件)中添加:
anyVariable = inpHide.Value;