-1

我需要从后面的代码中获取一个 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" />?我知道 JavaScript 在 C# 之后编译,但是有没有办法获取这个变量?

4

1 回答 1

1

杰夫-

这并不是一个真正的答案,我很抱歉,但我认为你可能离这里很远。

您最近的帖子历史似乎表明您希望在网页上产生视差效果。我引用的帖子:12

您是否按照教程进行操作?你在哪里遇到了问题?

一般的

我认为您对网页的工作方式有些困惑。WebForms 是一种 ASP 技术,即活动服务器页面。您可以阅读更多相关信息,但基本上它提供了一个平台,您可以更轻松地开发响应式网站。

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

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

与您的问题的关系

您正在尝试为网页上的背景图像设置动画。这完全是客户端的工作。您不希望客户端频繁地与 Web 服务器通信以创建平滑过渡。实际上,这很可能是不可能的。

您正在查看的内容是纯 JavaScript,并且完全在浏览器中运行。我强烈鼓励您将其作为解决问题的途径。然后在您遇到问题时提出问题。

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

于 2014-06-25T23:16:37.003 回答