如何从c#中获取JavaScript变量

本文关键字:获取 JavaScript 变量 | 更新日期: 2023-09-27 18:10:22

我需要得到一个JavaScript变量从我的代码后面没有做一个页面刷新或按钮单击事件。下面是我的代码:

aspx:

<asp:HiddenField ID="docLengthValue" runat="server" />
<script type="text/javascript">
var body = document.body,
    html = document.documentElement;
var height = Math.max(body.scrollHeight, body.offsetHeight,
    html.clientHeight, html.scrollHeight, html.offsetHeight);
//alert(height + ": Page length");
document.getElementById("<%=docLengthValue.ClientID%>").setAttribute("Value", height);
</script>
c#:

//Skrollr body tag background parallax animation
string docLengthVar = docLengthValue.Value;
HtmlGenericControl skrollr = (HtmlGenericControl)this.Page.Master.FindControl("bodyBG");
            skrollr.Attributes.Add("data-0", "background-position: 0px -120px;");
            skrollr.Attributes.Add("data-" + docLengthVar, "background-position: 0px 0px;");
            dataAttb.Text = "This is the Document length:&nbsp;&nbsp;" + docLengthVar;

如何访问<asp:HiddenField ID="docLengthValue" runat="server" />的Value字段?我知道JavaScript编译c#之后,但有办法得到这个变量吗?

如何从c#中获取JavaScript变量

Jeff-

这不是一个真正的答案,我很抱歉,但我认为你可能偏离了方向。

你最近的帖子历史似乎表明你想在你的网页上有视差效果。我引用的帖子:1和2。

你是否遵循了本教程?你从什么时候开始有问题的?

我想你对你的网页是如何工作的有些困惑。WebForms是一种ASP技术,即活动服务器页面。你可以阅读更多相关内容,但基本上它提供了一个平台,你可以更容易地开发响应式网站。

你正在写的JS是一种完全在浏览器中运行的技术。当JavaScript运行时,代码不知道它在ASPX页面中。它不知道如何与背后的代码对话。

当您的页面呈现时,它是客户端接收到的纯原始html。当用户提交表单或单击按钮时,通过平台的魔力,您的代码在后台运行。但这不是你自己做不到的。所发生的一切都是你的浏览器正在发送正确格式的HTTP请求,而你的web服务器正在将这些请求分派给页面(代码/类)。

与你的问题的关系

您正在尝试为网页上的背景图像设置动画。那完全是客户的工作。您不希望客户机频繁地与web服务器进行通信,以实现平稳过渡。事实上,这很可能是不可能的。

你正在看的东西是纯JavaScript,完全在浏览器中运行。我强烈建议你们把这个作为解决问题的途径。如果有问题就问问题。

编辑:抱歉,如果我已经推断太多了。我的建议是认真的。