从codebehind中的javascript函数中检索值

Mo7*_*med 2 javascript c# asp.net code-behind

如何从代码隐藏中的javascript函数中检索值,在页面加载时... javascript函数如:

<script type="text/javascript">
        function isIFrame() {
            var isInIFrame = (top.location != self.location);
            if (isInIFrame) {
                return "inside";
            }
            else {
                return "outside";
            }
        }
    </script>
Run Code Online (Sandbox Code Playgroud)

和代码背后像:

protected void Page_Load(object sender, EventArgs e)
    {
        string resutOfExecuteJavaScript = "";
        // resutOfExecuteJavaScript = isIFrame(); // from javascript

        if (resutOfExecuteJavaScript == "inside")
        {
            // do something
        }
        else
        {
            // do something
        }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢.

Mid*_*ali 5

您无法直接从服务器端代码调用客户端javascript方法.首先,您需要将函数结果分配给某个隐藏变量的值,然后在服务器端访问它

假设你有一个像这样的隐藏字段

<input type="hidden" runat="server" id="hdnVal"/>
Run Code Online (Sandbox Code Playgroud)

然后你可以设置如下的值

document.getElementById("hdnVal").value=isIFrame();
Run Code Online (Sandbox Code Playgroud)

然后在服务方

 string resutOfExecuteJavaScript = hdnVal.Value;
Run Code Online (Sandbox Code Playgroud)

  • @Mo7ammed - 我认为问题是你不明白ASP.NET是如何工作的.服务器端代码在服务器上运行...客户端代码在客户端上运行...只有当服务器通过呈现javascript向客户端提供信息时,它们才能进行交互,客户端代码可以发送信息通过post-back或AJAX等返回服务器.服务器端代码**不能**运行用客户端使用的语言编写的函数 (3认同)