0

ASP.NETとC#を使用しています。これでjavascriptを使用してドキュメントの高さを取得できます。

var h = document.documentElement.offsetHeight;

ここで、ページの読み込み中にこの値が必要になります。ただし、JavaScriptはページの読み込み後に実行を開始します。したがって、サーバー側のコード(C#)を使用して取得する必要があります。

出来ますか?

編集:

ページロードでは、ドキュメントの高さに基づいてすべてのタグの高さを設定することを計画しています。ページがすべての解像度に適合するようにします。

4

2 に答える 2

3

定義上、サーバー側のコードを使用してこの値を取得することはできません。

ただし、JavaScriptを使用して、AJAXを介して値をASP.NETスクリプトに戻し、この時点で必要なアクションを実行することはできます。もちろん、これは、たとえば、画面サイズごとに異なるコンテンツをオンロードで提供することはできないことを意味しますが、それはすべてあなたの意図に依存します。

ページロードで必要になるため、これを行う非常にハッキーな方法の1つは、ブラウザの高さを検出してリダイレクトすることです。たとえば、PageLoad内で直接使用できるクエリ文字列値として渡します。具体的には、JavaScriptを使用してこのQS値を検出し(たとえば?ph=768)、存在しない場合は、ページをそれ自体にリダイレクトし、に追加し?ph=768ます。そうすれば、それを使用して、ドキュメントの読み込み時にページの高さを取得できます。

ただし、@ J.Steenがコメントで述べているように、意図を定義する方がおそらく良いでしょう。

于 2012-12-21T09:29:20.580 に答える
0

現実的には、これを行うことは可能ですが、アプローチは間違っています。この種の機能は、クライアント側ではるかに適切に実装されます。

調査する必要があるのは、正しいセマンティックマークアップ、CSS、およびJavaScriptを使用してこのような問題に対処することを目的としたレスポンシブWebデザインです。

ページの読み込み時にドキュメントのサイズに応じて要素を適合させたいと言っていますが(ドキュメントは最初に要素のサイズに合わせて拡大縮小されるため、ウィンドウサイズを意味すると仮定します)、ユーザーが画面のサイズを変更しますか?その後、すべてが再びポットに行きます!

最近、jQueryを使用して同様の問題に対処する必要があったため、目的の結果を達成するのに役立つ可能性があるため、次のコードスニペットを検討することをお勧めします。

$(document).ready(function() {
    // Will run when the document is ready.
    resizeElements();
});

$(window).resize(function() {
    // Will run when the window is resized.
    resizeElements();
});

function resizeElements() {
    // Write your code here to adjust the position, height and width of the desired elements
}
于 2012-12-21T10:32:08.963 に答える