neue fenster aus einer map-anweisung öffnen
Matthias
- javascript
hallo!
ich habe folgendes problem:
ich habe eine grafik mit einer anzahl von bereichen, die jeweils mit einem neuen fenster verlinkt sein sollen.
folgender programmcode wird zwar vom ie4 verstanden, aber nicht vom nc4.5. woran liegt's? darf ich dort keinen onclick-befehl in ein map-anweisung einbinden?
.....
<MAP NAME="z">
<AREA SHAPE="rect" coords="383,190,440,213" onclick=open("x.htm","_blank","height=230,width=500,locationbar=no,toolbar=no")>
......
</MAP>
......
zweitens würde ich gerne eine funktion am anfang definieren, damit ich beim oben erwähnten programmteil, der den map-bereich definiert und das neue fenster öffnet nur noch die htm-adresse als wert der funktion eingeben muß. leider sind alle meine versuche gescheitert. wer kann mir da weiter helfen?
drittens würde ich gerne wissen, ob ich mit einem befehl alle von diesem frame aus generierten fenster schließen kann, wenn der ausgangsframe selbst geschlossen, oder ein neuer inhalt geladen wird.
vielen dank im voraus, matthias
wer sich den aktuellen stand ansehen möchte url ist unten, dann im bereich 'ich' menü: freunde / wer mit wem
Hallo Matthias,
doch, das geht im Netscape schon, was Du vorhast. Ohne es getestet zu haben fällt mir an Deinem Code folgendes auf:
1. Der Event-Handler heißt onClick, nicht onclick (JS ist eigentlich case-sensitiv, NS macht da ab und an Mucken wenn man sich nicht dran hält)
2. Die JS-Anweisung wäre genauer window.open, nicht nur open.
3. Üblicherweise ordnet man dem zu öffnenden Fenster eine Variable zu, etwa newwindow = window.open(...)
4. Ein Funktionsaufruf aus einer Imagemap ist durchaus möglich, z.B.
<area shape="..." coords="..." onClick="fensterauf(..parameter...)"
Als Parameter kannst Du beispielsweise die dem Fenster zugewiesene Variable und die URL mitgeben.
Grüße,
Utz
hi!
vielen dank für die prompte antwort. die von euch angemerkten berichtigungen zu onClick und window.open hatte ich schon vorher ausprobiert. leider ohne erfolg. der
netscape öffnet die fenster nicht.
was das problem des funktionsaufrufes anbelangt: ich hatte als alternative für die ausführliche version in meiner ersten frage folgenden programmcode geschrieben:
.....
<script language="JavaScript">
function quer(url)
{
fenster = window.open(url,"eins","height=230,width=500,locationbar=no,toolbar=no");
}
function hoch(url)
{
fenster = window.open(url,"zwei","height=300,width=400,locationbar=no,toolbar=no")
}
</script>
</HEAD>
<BODY>
<CENTER>
<BR><BR>
<MAP NAME="freunde">
<AREA SHAPE="rect" coords="300,292,370,313" href="JavaScript:quer("andre.htm")"> diese version meldet eine fehler bezüglich des punktes in der url
<AREA SHAPE="rect" coords="300,105,368,125" onClick="quer("frank.htm")"> diese funktioniert ebenfalls nicht
<AREA SHAPE="rect" coords="180,193,270,215" onClick="hoch("stephan.htm")">
<AREA SHAPE="rect" coords="383,190,440,213" onClick="quer("gerd.htm")">
........
auch hier gehen die fenster (in beiden browsern) nicht auf. wo liegt der fehler liegt?
nochmals recht herzlichen dank.ach übrigens..... ist erst mein zweiter tag mit javascript ;-)
Hallo muc,
netscape öffnet die fenster nicht.
Netscape benötigt unbedingt ein href im Tag, also einfügen href="#"
ich verbessere aber gleich noch ein paar mehr Fehler:
<script language="JavaScript">
function quer(url)
{
fenster = window.open(url,"eins","height=230,width=500,locationbar=no,toolbar=no");
}
function hoch(url)
{
fenster = window.open(url,"zwei","height=300,width=400,locationbar=no,toolbar=no")
}
</script>
</HEAD>
Die Funktionen sind in Ordnung, ich empfehle dir trotzdem mal
<../../sfausles/tsfa_tcd.htm#a5>
genauer anzuschauen.
<BODY>
<CENTER>
<MAP NAME="freunde">
<AREA SHAPE="rect" coords="300,292,370,313" href="JavaScript:quer("andre.htm")">
du mußt "andre.htm" maskieren mit "andre.htm",
<AREA SHAPE="rect" coords="300,105,368,125" onClick="quer("frank.htm")">
gleicher Fehler und href fehlt. Besser:
<AREA SHAPE="rect" coords="300,105,368,125" href="#" onClick="quer("frank.htm");return false;">
oder so:
<AREA SHAPE="rect" coords="300,105,368,125" href="#" onClick="quer('frank.htm');return false;">
einfaches ' statt " verwenden
return false sorgt dafür, daß der href nicht ausgeführt wird.
das Gleiche gilt für alle anderen Aufrufe
nochmals recht herzlichen dank.ach übrigens..... ist erst mein zweiter tag mit javascript ;-)
:-) es wird schon werden mit dem JS
Viele Grüße
Antje
Hi,
<MAP NAME="z">
<AREA SHAPE="rect" coords="383,190,440,213" onclick=open("x.htm","_blank","height=230,width=500,locationbar=no,toolbar=no")>
......
</MAP>
RTFM, wenn ichs mal so sagen darf ,)
<area shape="rect" coords="383,190,440,213" onclicl="window.open('x.htm','irgendeinname_KEIN_blank_oder_so_was','.....');">
zweitens würde ich gerne eine funktion am anfang definieren,
damit ich beim oben erwähnten programmteil, der den map-bereich
definiert und das neue fenster öffnet nur noch die htm-adresse
als wert der funktion eingeben muß.
hm, seltsam ausgedrückt... aber ich glaube, ich weiß, was du meinst:
function oeffne(url)
{
fenster = window.open(url,"","angaben");
}
<area shape="rect" coords="383,190,440,213" href="JavaScript:oeffne(url.htm)">
drittens würde ich gerne wissen, ob ich mit einem befehl alle von
diesem frame aus generierten fenster schließen kann, wenn der
ausgangsframe selbst geschlossen, oder ein neuer inhalt geladen
wird.
Es gibt keinen Befehl dafür. Trotzdem kann man das machen ,) dazu
aendere die Funktion "oeffne" so ab:
<script language="JavaScript">
var fenster = new Array();
function oeffne(url)
{
var ende = fenster.length+1;
fenster[ende] = window.open(url,"","angaben");
}
function alle_schliessen()
{
var laenge = fenster.length;
for(i=0;i<=laenge;i++)
{
fenster[i].close();
}
}
</script>
<body onunload="alle_schliessen();">
<map name="z">
<area shape="rect" coords="383,190,440,213" href="JavaScript:oeffne(url.htm)">
</map>
</body>
mfg
CK1
P.S.: Programmieren heißt nicht, Befehle zu benutzen - Programmieren
heißt, mit gegebenen Möglichkeiten Wege zu finden, ein Problem zu
lösen.
so, herzlichen dank nochmals für die hilfe.
mit vereinten kräften habe ich's doch geschafft. nachfolgend, für den interessierten der functionierende code:
<script>
function quer(url)
{
fenster = window.open(url,"_blank","height=230,width=500,locationbar=no,toolbar=no");
}
function hoch(url)
{
fenster = window.open(url,"_blank","height=300,width=400,locationbar=no,toolbar=no");
}
</script>
</HEAD>
<BODY>
<CENTER>
<BR><BR>
<MAP NAME="freunde">
<AREA SHAPE="rect" coords="180,193,270,215" href="#" onClick=hoch("stephan.htm")>
<AREA SHAPE="rect" coords="383,190,440,213" href="#" onClick=quer("gerd.htm")>
.......
</MAP>
<IMG SRC="freundeskreis.png" USEMAP="#freunde" BORDER="0">
</CENTER>
netscape benötigt href="#" zum öffnen der fenster. mit "_blank" in der funktion, wird für jeden map-link ein eigenes fenster geöffnet, wenn man die fenster benennt, nur jeweils eines für die funktion quer, oder hoch und die damit verknüpfte seite eingelesen.
gruß, matthias