Zur Navigation

window.open

1 lava

Hallo, ich wollte bei mir in der Firma (da hab ich mir auch XAMPP installieren lassen) eine kleine Simulation für das neu geplante Projekt schreiben und hab eine ganz einfache window.open Struktur verwendet wie in meinen bisherigen Programmen auch. Trotzdem kommt beim Aufruf der Javascript-Funktion "Fehler auf der Seite" und ich weiß nicht, warum.

Die Mini-Startseite wäre wie folgt:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Ladies-Simulation</title><script language="JavaScript" type="text/javascript">
<!--
function fensterauf{
neuesfenster=window.open("club.php","fenstername");
neuesfenster.focus();
}
-->
</script>

</head>

<body> Nehmen wir halt jetzt einfach mal an, das wäre die Ladies-Seite und dies der <a href="javascript:fensterauf()"> Link zur Clubseite </a>
</body>
</html>

und die Seite clup.php würde einfach erstmal nur im <body> Bereich ein Hallo enthalten, um zu schauen, ob das mit dem neuen Fenster erstmal klappt. Aber scheinbar hab ich bei der window.open - Funktion irgendwas falsch gemacht. Ich weiß aber nicht was, denn bei meinen früherer Programmen sah alles, soweit ich sehe, ganz genauso aus....

10.01.2007 08:26

2 Jörg

Hallo lava,

hinter dem Funktionsnamen fehlen die runden Klammern

function fensterauf()
{
neuesfenster=window.open("club.php","fenstername");
neuesfenster.focus();
}

10.01.2007 08:54

3 lava

Mist, ich bin ja blöd! Hab's gerade selbst gemerkt, wollte gerade den Thread löschen um dich nicht mit diesem Pipifax zu nerven. Aber du warst schneller.... Danke!

10.01.2007 08:58

4 lava

Hallo, jetzt versuch ich in der Firma eine kleine Webanwendung zu programmieren und hänge wieder an wahrscheinlich einfachen Punkten...

Ich will clubpres.php so aufrufen, daß im body-Tag steht:
<?PHP if ( empty($a) )
{echo "onload=\"fuellefensterstart()\" ";}
else {echo "onload=\"fuellefenster($a)\" " ;}
?>

wobei ich im <script language="javascript">-Teil definiert hab:



var Grundbilder=new Array("pink_seite.jpg", "meer_seite.jpg", "dschungel_seite.jpg", "dschungel2_seite.jpg", "rot_seite.jpg")


function fuellefensterstart()
{
document.images[0].src="wenke_start.jpg";
}

function fuellefenster(a)
{
window.document.images[0].src=Grundbilder[a];}



Wenn ich die Seite erstmals aufrufe, also empty($a) zutrifft, dann krieg ich das erwartete Bild. Weitere Aufrufe der Seite sollten in der folgenden Form passieren:


<div align="center"><img width="1000" height="800" border="0" usemap="#Map" />
<map name="Map" id="Map">
<area shape="rect" coords="43,616,186,758" href="clubpres.php?a=0 " />
<area shape="rect" coords="234,614,379,762" href="clubpres.php?a=1 " />
<area shape="rect" coords="427,614,571,759" href="clubpres.php?a=2" />
<area shape="rect" coords="621,613,766,758" href="clubpres.php?a=3" />
<area shape="rect" coords="816,616,960,758" href="clubpres.php?a=4" />
</map>
</div>


d.h. ich hab gedacht, daß damit automatisch die PHP-Variable $a den Wert aus dem Query String kriegt. Aber wahrscheinlich ist da wieder ein Denkfehler drin, und ich muß den Query-String noch irgendwie an $a übergeben??? Jedenfalls lädt er immer wieder die gleiche Seite.

Zweite Frage: Hab ich mit der fuellefenster-Funktion oder mit dem Javascript-Array etwas falsch gemacht? Denn wenn ich für empty($a) statt fuellefensterstart() einfach mal spaßeshalber fuellefenster(3) aufrufe, dann erkennt er das Bild aus dem Array nicht ...

10.01.2007 13:46

5 lava

Hat sich vielleicht erledigt !!! Ich probiers nochmal mit window.location.search, das ist wohl das, was ich vergessen habe?

10.01.2007 13:51 | geändert: 10.01.2007 14:07

6 Jörg

d.h. ich hab gedacht, daß damit automatisch die PHP-Variable $a den Wert aus dem Query String kriegt. Aber wahrscheinlich ist da wieder ein Denkfehler drin, und ich muß den Query-String noch irgendwie an $a übergeben???

Wenn register_globals off geschaltet ist, dann muss die Variabel als $_GET['a'] aufgenommen werden

10.01.2007 13:55

7 lava

Hm, ich hab jetzt zwischenzeitlich den Übergang wie folgt gemacht:


<body <?PHP if ( empty($_REQUEST) )
{echo "onload=\"fuellefensterstart()\" ";}
else {$a=$_REQUEST; echo "onload=\"fuellefenster($a)\" " ;}
?> >

Damit geht es (und das entspricht wohl auch deinem $_GET - Vorschlag, oder?) , allerdings funktioniert mein Array noch nicht richtig! Wenn ich in


function fuellefenster(a)
{
document.images[0].src=Grundbilder[a]
}


statt Grundbilder[a] direkt z.B. "meer_seite.jpg" eingebe, dann krieg ich keine Fehler!!! (aber ich will ja nicht mit jedem Klick "meer_seite.jpg" laden....)

10.01.2007 14:11

8 Jörg

$_REQUEST beinhaltet $_GET und $_POST; das geht natürliich auch damit - $_GET bbzw. $_POST sind im allgemeinen vorzuziehen, da sie enger gefasst sind (und somit weniger Angrifsfläche bietet)

Wenn die Variable im Parameter a=irgendwas übergeben wird, dann sollte dieses 'a' auch angegeben werden, $_REQUEST ist nur das Array mit den übergebenen Variablen:

else {$a=$_REQUEST['a'];  echo "onload=\"fuellefenster($a)\" " ;}

10.01.2007 14:23 | geändert: 10.01.2007 14:26

9 lava

Super, es funktioniert jetzt !!!
Wieder mal vielen lieben Dank!!!

10.01.2007 14:27

10 Forum

Ein Beitrag aus diesem Thread wurde in einen neuen Thread verschoben:

Resizeable Image-Maps?

11.01.2007 10:06

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]