Javascript ResolutionDetect() schließt IE 6 unter Windows

Dieses Thema im Forum "Web Page Design" wurde erstellt von sevY, 06.07.2004.

  1. sevY

    sevY Thread Starter Gast

    Hi,

    ich habe ein Javascript geschrieben, das die Auflösung des Monitors abfragt und dann entsprechend eine PHP Datei aufruft, welcher er je nach Ergebniss per GET eine Variable mitgibt.

    In der PHP Datei selbst wird dann mittels switch() entsprechend der übergebenen Variable Höhe und Breit für eine eingebette swf definiert.

    Ist die übergebene Variable leer, so werden default Werte gesetzt (die, welche für 1024er Auflösungen, da am weitestens verbreitet, passend sind).

    Mein Problem besteht darin, das unter Mac OS X und Linux mit diversen Browsern dieses Script einwandfrei funktioniert.

    Unter Windows gibt es Probleme. Ich vermute das liegt an dem jeweils notwendigen, installierten Sun Java Plugin, da er IE 6 Windows kein Javasupport integriert hat.

    Netscape & co verweigern unter Windows einfach die Ausführung des Scripts, der Bildschirm bleibt weiß.

    Der IE 6 unter Windows hingegen schließt einfach das Browserfenster komplett, sprich… er stürzt ab.


    Nun… hat jemand vielleicht ein alternatives Script, welches diese Funktion ermöglicht? Oder weiß jemand, woran es liegt?

    Ich habe dieses Script selbstgeschrieben. Prinzipiell möchte ich nicht das Rad neuerfinden, jedoch finde ich, das man nur das verkaufen und vertreten kann, was man selbst programmiert.


    Hier das Javascript. Ist extern in einer function.inc.js definiert.

    PHP:
    //javascript

    function resolution_detect()
        {
        switch(
    screen.width)
            {
            case 
    640:
                
    window.location.href="index.php?resolution=smallsize";
            break;
            case 
    800:
                
    window.location.href="index.php?resolution=smallsize";
            break;
            case 
    1024:
                
    window.location.href="index.php?resolution=smallsize";
            break;
            case 
    1152:
                
    window.location.href="index.php?resolution=1152";
            break;
            case 
    1280:
                
    window.location.href="index.php?resolution=fullsize";
            break;
            case 
    1600:
                
    window.location.href="index.php?resolution=fullsize";
            break;
            default:
                
    window.location.href="index.php?resolution=fullsize";
            break;
            }
        
    delete(resolution_detect());
        }

    Hier die index.php, welche das Script aufruft und welcher dann wiederum auch die Variablen übergeben werden, indem es erneut aufgerufen wird.

    (Für die Funktion unwesentliche Teile der Datei habe ich entfernt bzw durch „...“ ersetzt, damit der Code übersichtlich bleibt)

    PHP:
    <?php
    switch($_GET['resolution'])
        {
        case 
    smallsize:
            
    $swf_x=792;
            
    $swf_y=606;
        break;
        case 
    1152:
            
    $swf_x=890;
            
    $swf_y=681;
        break;
        case 
    fullsize:
            
    $swf_x=954;
            
    $swf_y=730;
        break;
        }
    ?>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    <meta http-equiv="expires" content="7">
    <meta name="description" content="...">
    <meta name="keywords"lang="de" content="...">
    <meta name="robots" content="all">
    <meta name="revisit-after" content="7 days">
    <meta name="author" content="...">
    <meta name="publisher" content="...">
    <meta name="copyright" Content="...">
    <title><?php echo $additional?></title>
    <link rel="shortcut icon" href="img/<?php echo $favicon?>">
    <link rel="stylesheet" type="text/css" href="default.css">
    <script language="javascript" type="text/javascript" src="function.inc.js"></script>
    </head>
    <?php 
    if(!isset($_GET['resolution']))
        {
        echo
    '
            <body onLoad="resolution_detect()";>
            <b>Detecting resolution... please wait</b><p>
            *javascript required*
        '
    ;
        die();
        }
    else
        {
        echo
    '
            <body>
        '
    ;
        }
    if(empty(
    $swf_x) || empty($swf_y))
        {
        
    $swf_x=792;
        
    $swf_y=606;
        }
    ?>
    <table width="100%" height="100%">
        <tr>
            <td align="center" valign="middle">
                <table>
                    <tr>
                        <td>
                            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="<?php echo $swf_x?>" height="<?php echo $swf_y?>">
                                <param name="movie" value="home.swf?selected=<?php echo $selected?>"> 
                                <param name="quality" value="high"> 
                                <embed src="home.swf" flashvars="selected=<?php echo $selected?>" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="<?php echo $swf_x?>" height="<?php echo $swf_y?>">
                                </embed>
                            </object> 
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
    </table> 
    </body>
    </html>

    Liebe Grüße

    Yves
     
Die Seite wird geladen...

Diese Seite empfehlen