asp.net 从代码隐藏中的JavaScript函数中检索值

noj0wjuj  于 5个月前  发布在  .NET
关注(0)|答案(3)|浏览(73)

如何在页面加载时从代码隐藏中的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
        }
    }


谢谢

a6b3iqyw

a6b3iqyw1#

你不能直接从服务器端代码调用客户端的JavaScript方法。首先你需要将函数结果赋给某个隐藏变量的值,然后在服务器端访问它
假设你有一个这样的隐藏字段

<input type="hidden" runat="server" id="hdnVal"/>

字符串
然后你可以设置如下的值

document.getElementById("hdnVal").value=isIFrame();


然后在发球侧,

string resutOfJavaScriptExecution = hdnVal.Value;

j2datikz

j2datikz2#

using _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

agxfikkp

agxfikkp3#

在JavaScript文件或脚本中添加:

function SetHiddenVariable()
     {
        document.getElementById(inpHide).value= "value";
     }

字符串
在.aspx中添加此标记:

<input id="inpHide" type="hidden" runat="server" />


在aspx.cs(c#文件)中添加:

anyVariable = inpHide.Value;

相关问题