Avatar billede cort Nybegynder
19. november 2002 - 11:38 Der er 16 kommentarer og
1 løsning

screen size i asp.net

Hej alle,

Har et lille problem.
Jeg har et javascript kode til at finde brugeren screen størrelse.
Disse værdier vil jeg gerne have overført til min asp.net kode.
Har prøvet lidt forskelligt , men ved ikke hvordan jeg fanger værdierne.

her er javascript kode. (skal muligvis laves lidt om)

jeg skal have fat i myWidth og myHeight
<script type="text/javascript" language="JavaScript">
<!--
function alertSize() {
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else {
        if( document.documentElement && ( document.documentElement.clientWidth ||document.documentElement.clientHeight ) ) {
            myWidth = document.documentElement.clientWidth;
            myHeight = document.documentElement.clientHeight;
        } else {
            if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
        }
    }
    document.write( 'Width = ' + myWidth + ' and height = ' + myHeight );

}
alertSize()
//-->
</script>
Avatar billede askhoej Praktikant
19. november 2002 - 11:52 #1
Avatar billede cort Nybegynder
19. november 2002 - 12:24 #2
Spændednde,
Men det giver dig stadig ikke mulighed for at fange værdierne (bredde og højde) i din asp.net kode.
Avatar billede burningice Nybegynder
19. november 2002 - 12:31 #3
cort>> du skal have lavet nogle hidden inputs på din side, som er sat til runat="server". Husk også at lave en form omkring hele siden der er sat til runat="server" også... det du så gør, istedet for at bruge document.write er at du skal tildelde dit hidden input dine to værdier, og derfefter poste din side så du kan bruge dem på serversiden

det kunne være noget i denne retning

<script type="text/javascript" language="JavaScript">
<!--
function alertSize() {
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else {
        if( document.documentElement && ( document.documentElement.clientWidth ||document.documentElement.clientHeight ) ) {
            myWidth = document.documentElement.clientWidth;
            myHeight = document.documentElement.clientHeight;
        } else {
            if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
        }
    }
    document.getElementById("screenWidth").Value = myWidth;
    document.getElementById("screenHeigt").Value = myHeight;
   
    document.myForm.submit();

}
alertSize()
//-->
</script>

<form id="myForm" runat="server">
<input type="hidden" id="screenWidth">
<input type="hidden" id="screenHeight">

</form>
Avatar billede cort Nybegynder
19. november 2002 - 12:57 #4
hvorfor kan siden ikke finde disse:
document.getElementById("screenWidth").Value = myWidth;
    document.getElementById("screenHeigt").Value = myHeight;

det burde da virke, hmm.
Avatar billede odegaard Nybegynder
19. november 2002 - 13:04 #5
fordi screenHeight er stavet forkert ?
Avatar billede cort Nybegynder
19. november 2002 - 13:05 #6
ja har set det men det virkar stadig ikke, kan du kører det hos dig?
Avatar billede cort Nybegynder
19. november 2002 - 13:09 #7
det skal se sådan her ud right. siden hedder screensize.aspx

Prøv at se om en af jer kan kører det.

<html>
    <head>
        <script type="text/javascript" language="JavaScript">
<!--
function alertSize() {
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else {
        if( document.documentElement && ( document.documentElement.clientWidth ||document.documentElement.clientHeight ) ) {
            myWidth = document.documentElement.clientWidth;
            myHeight = document.documentElement.clientHeight;
        } else {
            if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
        }
    }
   
    document.getElementById("screenWidth").Value = myWidth;
    document.getElementById("screenHeight").Value = myHeight;
    document.myForm.submit();

}
alertSize();
//-->
        </script>
    </head>
    <body>
        <form name="myForm" method="post" action="screensize.aspx" id="myForm">
<input type="hidden" name="__VIEWSTATE" value="dDwtMjA5MTc5NjMwMTs7PvZyQpJQX9eF0J7YiwTIMEaYV7TZ" />

            <input name="screenWidth" id="screenWidth" type="hidden" /> <input name="screenHeight" id="screenHeight" type="hidden" />
        </form>
    </body>
</html>
Avatar billede cort Nybegynder
19. november 2002 - 13:09 #8
sorry her ar aspx koden.

<html>
    <head>
        <script type="text/javascript" language="JavaScript">
<!--
function alertSize() {
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else {
        if( document.documentElement && ( document.documentElement.clientWidth ||document.documentElement.clientHeight ) ) {
            myWidth = document.documentElement.clientWidth;
            myHeight = document.documentElement.clientHeight;
        } else {
            if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                myWidth = document.body.clientWidth;
                myHeight = document.body.clientHeight;
            }
        }
    }
   
    document.getElementById("screenWidth").Value = myWidth;
    document.getElementById("screenHeight").Value = myHeight;
    document.myForm.submit();

}
alertSize();
//-->
        </script>
    </head>
    <body>
        <form id="myForm" runat="server">
            <input type="hidden" id="screenWidth" runat="server"> <input type="hidden" id="screenHeight" runat="server">
        </form>
    </body>
</html>
Avatar billede cort Nybegynder
19. november 2002 - 15:30 #9
hmm detter her virker:
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function CheckBrowserSize(){
  if (document.layers) {
      width = window.innerWidth - 16;
      height = window.innerHeight - 16;
  } else if (document.all || document.getElementById) {
      width = document.body.clientWidth - 16;
      height = document.body.clientHeight - 16;
  }
  document.forms[0].elements['screenWidth'].value=width;
document.forms[0].elements['screenHeight'].value=height;
}





</SCRIPT>
</HEAD>
<BODY ONLOAD="CheckBrowserSize()">
<FORM runat="server">
<input type="hidden" name="screenWidth" id="screenWidth" runat="server"> <input type="hidden" name="screenHeight" id="screenHeight" runat="server">

<input type="submit">
</FORM>
</BODY>
</HTML>

Men hvis det skal bruges i en user control, så virker det ikke, satans
Avatar billede christian Nybegynder
21. november 2002 - 13:09 #10
Det ville nok være bedst hvis du gemmer det i en session, på den måde vil du kunne bruge det på alle dine sider
Avatar billede cort Nybegynder
21. november 2002 - 13:12 #11
Lyder som en god ide, men hvordan gøres det ?
Altså hvordan overfører du dine javascript værdier til .net session object?
Avatar billede christian Nybegynder
21. november 2002 - 19:14 #12
Jeg har bixet et lille script sammen...

Har tester det i NS6.2, NS4, IE6, Mozilla 1.0 og Phoenix 0.4

--------------------------------------------------------------------
<%@ page Language="c#" runat="server" %>
<script Language="c#" runat="server">
   
   
    void setSession() {
        Response.Clear();
        Response.Write("<html><script LANGUAGE=\"JavaScript\">");
        Response.Write("window.location = window.location.pathname + '?' + location.search.substring(1) + '&screenWidth=' + screen.width + '&screenHeight=' + screen.height;</");
        Response.Write("script></html>");
        Response.End();
    }
   
    void Page_Load(Object Sender, EventArgs e) {
        if (Request.QueryString["sceenWidth"] != "") {
            Session["screenWidth"]    = Request.QueryString["screenWidth"];
            Session["screenHeight"]    = Request.QueryString["screenHeight"];
        }
        if (Session["screenWidth"] == null) {       
            setSession();
        }
    }
</script>
<html>
<head>
</head>
<body>
Du bruger <%= Session["screenWidth"] %> * <%= Session["screenHeight"] %>
</body>
</html>
--------------------------------------------------------------------------
Avatar billede christian Nybegynder
21. november 2002 - 19:16 #13
Det skal lige sige at scriptet virker lige meget hvordan ULR'en ser ud altså med eller uden noget i querystring eks.: side.aspx?ID=38

Eller hvis den ligger i en underfolder eks.: www.domain.dk/underforlder/side.aspx?ID=38
Avatar billede cort Nybegynder
21. november 2002 - 19:32 #14
spændende, men værdierne skal ikke liggei url´en. Men måske det kan ændres rimeligt nemt.
Avatar billede christian Nybegynder
21. november 2002 - 19:34 #15
De som sessioner! hvad mere kan du forlange!!!

<%= Session["screenWidth"] %> * <%= Session["screenHeight"] %>
Du kan kun måle screen size på klienten... de overføres så via querystring og gemmes som sessioner...

Du kan sagtens bruge sessions på alle dine sider
Avatar billede christian Nybegynder
21. november 2002 - 19:35 #16
Der skulle stå:
De gemmes som sessioner
Avatar billede burningice Nybegynder
21. november 2002 - 19:57 #17
christian>> arr, sikker... asp.net... det kan da alt, kan det ikke? kan du ikke også lave et stykke kode til mig der kan lave frisk kaffe til mig hver morgen?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester