2

Web ページのコンテンツを調整できるように、クライアント ブラウザーの幅を取得したいと考えています。いくつかの調査の後、幅を取得するために jQuery で HiddenField を使用します。

<asp:HiddenField runat="server" ID="SendA" Value="" />
    <script>
        document.getElementById("<%=SendA.ClientID%>").value = $(window).width();
    </script>

また、Timer を使用して毎分ページを更新します。

問題は、ページが最初に読み込まれたときに SendA の値が "" のままであるが、タイマーがページを更新した後、SendA が正しいブラウザー幅を返すことです。

ページが最初にロードされたときにブラウザの幅を取得する方法はありますか?

4

2 に答える 2

0

問題は jQuery の仕組みにあります。jQuery コードを実行する前に、ドキュメントが読み込まれるまで待つ必要があります。そのため、jQuery コードを HTML ドキュメントの末尾または内部に配置することをお勧めします。$(document).ready

<asp:HiddenField runat="server" ID="SendA" Value="" />
<script>
    $(document).ready(function () {
        document.getElementById("<%=SendA.ClientID%>").value = $(window).width();
    });
</script>
于 2013-08-01T09:24:30.843 に答える
0
// pure JavaScript
var viewportWidth  = document.documentElement.clientWidth

// jQuery
var viewportWidth  = $(window).width()

詳細については、次のドキュメントを確認してください

http://responsejs.com/labs/dimensions/

于 2013-08-01T09:21:13.990 に答える