好吧,您正在运行的浏览器端代码,因此必须先将页面发送到浏览器,然后该脚本代码才能运行。
所以,从理论上讲,这种设计意味着只有在用户想要点击一个按钮,或者发生一些网页动作之后,你才能获取/抓取/使用后面代码中设置的值。
您还没有将页面发送到浏览器,因此您没有事件,或者没有要查找和获取页面宽度的地方 - 浏览器甚至还没有看到页面。
这是什么意思?您必须从登录页面或第一页加载中获取此宽度值。但是该页面肯定有负载,必须运行,并且必须设置该值。只有当页面被发送回服务器时,您的代码才能运行。
我想你可以显示一个页面,运行一些脚本代码,然后说使用 js 点击一个按钮来运行一些代码并获取宽度值。
另一方面?我认为术语“响应式”页面在这里被误用了。实际上响应式页面的整个想法?它们会自动为您重新调整大小,因此在代码中您无论如何都不应该担心或关心屏幕大小和宽度!
那么,假设您创建了一个默认网站 - asp.net/webforms、vb.net?
你有这个:
现在是响应式网站? (默认情况下,哪个 asp.net 项目是?-它使用引导程序)。
所以,让我们将浏览器的大小重新调整为一半。你得到这个:
注意文本段落的变化。
注意文本块如何仍然居中。
所以网站是自动响应的。让我们再小一点!!!
你明白了:
现在这些块正在彼此下方。
并注意菜单栏现在是那些熟悉的下拉菜单之一(这通常称为汉堡包)。
以上就是他们所说的“响应式”网站。甚至开箱即用的 vb.net/asp.net 网络表单应用程序都安装了引导程序,因此您的页面被认为是“响应式的”。
因此,响应式网站已经到位。
我为此编写了零代码。
并且不需要,或关心或作为一般规则需要获得一些页面宽度 - 它根本没有真正完成作为开发人员的行动或要求的问题。
如果有人建议您需要一些 javaScript 来获取页面宽度来编写响应式网站?哼,这样的建议需要某种体检!
现在,虽然上述内容解决了“响应式”网站的问题?
(顺便说一下,这是 asp.net 中此类网站的默认设置)。
嗯,在某些情况下,您可能确实想要获得该页面宽度。
但是,在您的示例中,我们无法在页面上找到一些“事件”来获取该标签,因为网页甚至还没有到达浏览器!!!! (提示:因此,您找不到任何页面事件来做您正在寻找的事情!!!)。
如果出于某种原因您真的需要该值(页面宽度)?然后你必须向用户展示一个页面,然后响应点击一个按钮或任何导致回发的东西,然后你的代码会因此而运行!。
所以,我想在您的第一个登录页面上,您可以这样做(获取/抓取/保存页面宽度)。但这只能发生在用户看到页面之后,并且他们点击了某个按钮或采取了将页面发布回来的操作,然后您的代码就可以运行了。
网络开发中必须了解的概念?您必须掌握所谓的“往返”或我们所说的页面生命周期。
在第一页加载 - 客户端浏览器什么都没有。因此,您的脚本无法运行。
在我们将页面发送到客户端后,我们有这个:
请注意这里非常小心 - 网页在客户端计算机上 - 它在网络服务器端根本不存在。
你没有这个:
而你甚至没有这个:
当用户点击一个按钮时,你有这个:
页面现在传送到服务器,你有这个:
现在您的代码开始运行。您的代码可以修改控件,但页面不与用户交互 - 只有代码可以修改网页。
所以,您的代码开始运行;
何时完成并且仅在该代码运行之后?然后页面返回浏览器:
然后浏览器再次显示,您拥有的脚本代码 THEN 再次开始运行!
那么,您的页面可以正常工作吗?
您必须在页面上放置一个按钮。让页面呈现,然后当用户点击按钮?然后您的按钮代码后面的代码可以获取/抓取/查看 page.width。
假设后面的代码看起来像这样(假设您在页面上放置了一个按钮)。
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim MyPageWidth As Integer
MyPageWidth = myhidden.Text
' do whatever more
End Sub