Javascript ResolutionDetect() schließt IE 6 unter Windows

S

sevY

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
 
Zurück
Oben Unten