【问题标题】:How to get a JavaScript variable from C#如何从 C# 获取 JavaScript 变量
【发布时间】:2014-08-16 16:10:08
【问题描述】:

我需要在不执行页面刷新或按钮单击事件的情况下从我的代码中获取一个 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;

如何访问&lt;asp:HiddenField ID="docLengthValue" runat="server" /&gt; 的值字段?我知道 JavaScript 在 C# 之后编译,但是有没有办法得到这个变量?

【问题讨论】:

  • 为什么要这样做?几乎可以肯定,有一种更好的方法可以完成您想做的事情。您能描述一下您提出问题的动机吗?
  • 您可以随时将其发送到带有 AJAX 请求的处理程序。
  • 您是否正在尝试获取page length? 无论如何,这是如何使用ajax within webforms, an extensively discussed subject. 的副本。您尝试了哪些方法,哪些方法不起作用?

标签: c# javascript variables skrollr hiddenfield


【解决方案1】:

杰夫-

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

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

你有关注this 教程吗?你在哪里遇到了问题?

常规

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

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

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

与您的问题的关系

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

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

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

【讨论】:

  • 上将,我走偏了。你实际上是对的......不知道我试图参与 JavaScript 和 C#。这一切都可以在 JavaScript 中完成。但是...我的 JavaScript 代码在呈现后是否获得网页的实际高度?当我测试所有 JavaScript 版本时,它似乎不是正确的值。另外,JavaScript 是否应该进入 Masterpage(body 标签所在的位置)?
  • 我怀疑 JS 会从内置功能中得到“错误”的值,更可能它不是您认为的那样。如果您的背景在每个页面上,并且您想要那种效果,那么我认为母版页应该没问题。
  • 我意识到这一切都需要在 JavaScript 中完成。我想到了一个方法。
猜你喜欢
  • 2020-06-01
  • 2018-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
相关资源
最近更新 更多