2009-05-21 28 views

Respuesta

2

Tendría que pasar eso a un script PHP desde JavaScript como la mayoría de los códigos de seguimiento (con una solicitud de imagen transparente).

+0

y todavía no se puede saber si el usuario cambia el tamaño de la ventana o cualquier evento como ese .. – xaxxon

4

Vas a tener que usar PHP junto con JavaScript, como en this example:

$url = $_SERVER['PHP_SELF']; 

if(isset($HTTP_COOKIE_VARS["res"])) 
    $res = $HTTP_COOKIE_VARS["res"]; 

else { 
    ?> 
    <script language="javascript"> 
    <!-- 
    go(); 

    function go() 
    { 
     var today = new Date(); 
     var the_date = new Date("August 31, 2020"); 
     var the_cookie_date = the_date.toGMTString(); 
     var the_cookie = "res="+ screen.width +"x"+ screen.height; 
     var the_cookie = the_cookie + ";expires=" + the_cookie_date; 
     document.cookie=the_cookie 
      location = '<?echo "$url";?>'; 
    } 
    //--> 
    </script> 
    <?php 
} 

//Let's "split" the resolution results into two variables 
list($width, $height) = split('[x]', $res); 

//Take the width and height minus 300 
$tb_width = $width-300; 
$tb_height = $height-300; 

//Make the table 
print("<table align=center border=1 width=" .$tb_width . " height=" . $tb_height . " > 
    <tr><td align=center>Your screen resolution is " . $width . " by " . $height . ".<br> 
    The width/height of this table is " . $tb_width . " by " . $tb_height . ".</td></tr> 
    </table>"); 
25

No, no puede. PHP se ejecuta en el servidor, por lo que no puede detectar la configuración del cliente a menos que tome pasos específicos del lado del cliente para pasar la información a los scripts PHP en el servidor.

+0

Vas a tener que usar PHP junto con JavaScript –

0

tamaño del monitor no se puede obtener usando JS, usted tiene que hacer una encuesta :)

+1

Uf? Sí puede. – Lloyd

+3

Lloyd: puede detectar la resolución de la pantalla, pero no el tamaño del monitor. Una resolución de 1600x1200 puede significar un viejo CRT de 21 ", un LCD moderadamente grande y una pantalla más pequeña realmente bonita y densa alrededor de 16" –

+0

+1 porque * tamaño * no se puede leer según Csaba – cjk

5

Por favor, tenga en cuenta que algunos de nosotros como nuestros navegadores no maximiza. Tal vez sea mejor que intentes detectar el tamaño del navegador en lugar de la resolución de la pantalla. Supongo que el JS que haría cualquiera sería muy similar, pero en realidad no sé que ese sea el caso.

Además, ¿cuál es la resolución del lector de pantalla de un ciego?

+2

+1. Tengo una resolución de pantalla de 2560x1600, casi nunca corro al máximo. Debería leer el tamaño del puerto de visualización (área de la ventana sin contar las barras de herramientas, las barras de desplazamiento, la barra de estado y las decoraciones de las ventanas). – SpliFF

0

Tenga en cuenta que JS puede verificar el tamaño de la ventana del navegador, pero este tamaño incluye barras de herramientas de usuario, barras de desplazamiento, etc. El área de trabajo real en el navegador depende del tamaño de esas barras de herramientas.

1

Algunas personas requieren un tamaño de navegador para el desarrollo de dispositivos móviles. Esta es información esencial en algunos casos.

El uso de WURFL y WALL puede evitar esto ya que la mayoría de los teléfonos móviles no son compatibles con JS.

2

Estaba buscando esto también, pero encontré que ninguna de estas respuestas realmente respondía la pregunta. De hecho, no hay forma de que PHP sepa la resolución de la pantalla, ya que se ejecuta en el lado del servidor. Dado que esa información no se transmite en las variables de entorno HTTP, necesitamos otra ruta. Javascript es una alternativa.

El siguiente ejemplo es una página PHP que busca una variable resolution que se pasa en la solicitud HTTP. Si no encuentra esa variable resolution, entonces crea un breve fragmento de JavaScript en la página que pasa esa variable y la altura y el ancho a lo largo de una redirección a sí mismo. Por supuesto, cuando la página se carga de nuevo después de la redirección, todas las variables se establecerán y PHP sabrá la resolución.

<?php 
    if(!isset($_GET['resolution'])) {  
     echo "<script language=\"JavaScript\">  
<!--  
    document.location=\"$PHP_SELF?resolution=1&width=\"+screen.width+\"&height=\"+screen.height;  
//-->  
</script>";  
    } else { 
     // Code to be displayed if resolution is detected  
     if(isset($_GET['width']) && isset($_GET['height'])) {  
      echo "Width: " . $_GET['width'] . " and Height: " . $_GET['height'] . "<br />"; 
     } else {  
      echo "Resolution not detected."; 
     }  
    } 
?> 

Al final encontré esta solución bastante insatisfactoria. Funciona, pero es feo, agrega cruxt a la URL y requiere una redirección. Aún así, puede inspirar a alguien a publicar una mejor respuesta. Para su información, crédito donde se debe crédito, esta respuesta fue inspirada por this post.

+0

Conoce la resolución en un momento dado ... pero cuando carga después de la redirección, quién sabe cuál es la resolución. – xaxxon

2

Sé que esta no es la mejor respuesta, así que ahorre el voto en baja.

<script> 
/* 
    JAVASCRIPT IS ON TELL THE DEVELOPER# 
*/ 
// GET BROWSER WIDTH AND HEIGHT 
var bh=screen.height; 
var bw=screen.width; 
window.location="?doSubmit=do&js=yes&bh="+bh+"&bw="+bw+""; 
</script> 

<noscript> 
    <!-- 
     JAVASCRIPT IS OFF TELL THE DEVELOPER# 
    --> 
    <meta http-equiv='refresh' content='0;url=?doSubmit=do&js=off&bh=off&bw=off'> 

</noscript> 

<? 

if($_GET["doSubmit"]=="do"){ 

    // VARS 

     $bh=$_GET["bh"]; 
     $bw=$_GET["bw"]; 
     $js=$_GET["js"]; 

    // PRINT HTML ?> 

<table> 

    <tr><td><strong>Browser Width:</strong></td><td><?=$bw;?>px</tr> 
    <tr><td><strong>Browser Height:</strong></td><td><?=$bh;?>px</tr> 
    <tr><td><strong>JavaScript Detection (y/n):</strong></td><td><?=$js;?></tr> 

</table> 
Cuestiones relacionadas