从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
        }
    }

谢谢。

从codeehind中的javascript函数中检索值

您不能从服务器端代码直接调用客户端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;