从codeehind中的javascript函数中检索值
本文关键字:检索 函数 javascript codeehind 中的 | 更新日期: 2023-09-27 18:00:32
如何在页面加载时从codeehind中的javascript函数中检索值。。javascript函数,如:
<script type="text/javascript">
function isIFrame() {
var isInIFrame = (top.location != self.location);
if (isInIFrame) {
return "inside";
}
else {
return "outside";
}
}
</script>
和代码背后类似:
protected void Page_Load(object sender, EventArgs e)
{
string resutOfExecuteJavaScript = "";
// resutOfExecuteJavaScript = isIFrame(); // from javascript
if (resutOfExecuteJavaScript == "inside")
{
// do something
}
else
{
// do something
}
}
谢谢。
您不能从服务器端代码直接调用客户端javascript方法。为此,首先需要将函数结果分配给某个隐藏变量的值,然后在服务器端中访问它
假设你有一个像这样的隐藏字段
<input type="hidden" runat="server" id="hdnVal"/>
然后您可以将值设置为低于
document.getElementById("hdnVal").value=isIFrame();
然后在发球端
string resutOfExecuteJavaScript = hdnVal.Value;
使用_doPostBack,您可以解决这个
<script type="text/javascript">
function isIFrame() {
var isInIFrame =(top.location != self.location);
var result;
if (isInIFrame) {
result="inside";
}
else
{
result ="outside";
}
__doPostBack('callPostBack', result);
</script>
</head>
在代码后面的部分
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();");
}
}
下面的链接将帮助你获得更多的想法。
http://www.dotnetcurry.com/ShowArticle.aspx?ID=203
在javascript文件或脚本中添加:
function SetHiddenVariable()
{
document.getElementById(inpHide).value= "value";
}
在.aspx中添加此标签:
<input id="inpHide" type="hidden" runat="server" />
在aspx.cs(c#文件)中添加:
anyVariable = inpHide.Value;