|
Javascript kann auf dem Nutzerbildschirm Fenster anlegen und verwalten. Es ist keine Kunst, diese Möglichkeit zu mißbrauchen und Werbefenster sich hartnäckig immer wieder vordrängen und ausgesprochen lästig werden zu lassen. Die Möglichkeit kann aber auch im Sinne verbesserter Navigation genutzt werden. Dabei kommt es darauf an, dem Nutzer "in die Hand" zu arbeiten, ihmkeine unnötigen Probleme zu bereiten.
Zu lösen wären ein zu akzeptierendes Problem undeines, das keins sein müßte.
Das Problem: Sie halten wichtige Links im Angebot, möchten abergerne, daß der Nutzer nicht auf fremden Sites verbleibt,sondern wieder zu Ihnen zurückkehrt. Natürlichkönnte er die Möglichkeiten des Browsers zur Rückkehrnutzen, das wird aber dann sehr lästig, wenn er innerhalbder Fremdsite mehrere Stationen zurückgelegt hat. Ihmkann man ein neues Fenster anbieten, das so lange zur Navigationdient, bis er die Rückkehr wünscht. Zu diesemZweck muß er dann einfach das oberste Fenster schließen,um wieder auf Ihrer Site zu landen. HTML sieht dies mitder Target-Angabe "_blank" standardgemäßvor.
Leider ist die Welt nicht so gut, wie sie sein sollte.
Nutzt man diese Target-Angabe, dann öffnet Netscapeeine exakte Kopie des vorhandenen Fensters. Das hat Logik.Wer neben meiner Seite die Börsenkurse sehen wollte,wird das auch neben der von mir empfohlenen Linkseite wollen.
Der IExplorer der bekannten Firma hält weniger vonden Rechten seiner Kunden. Er öffnet ein Einheitsfenster,das sich an 14-Zoll-Bildschirmen orientiert, unabhängigdavon, wie groß das anfordernde Fenster war. Zum Glückgestattet JavaScript sehr weitgehende Zugriffe auf die Fensterdes Nutzers. Dies läßt sich ausnutzen. Neues Fenster für externe oder
interne Links öffnen
Die Technik der Öffnung eines Fensters ist schon anläßlich
der Textausgaben besprochen
worden. Sie geht völlig unkompliziert mit window.open().
Allerdings sind dabei einige Parameter von nicht unbedeutender
Wichtigkeit.
In der Argumentklammer müssen mindestens zwei Einträge
erscheinen, der erste für die URL der zu ladenden Seite.
Es folgt ein frei vergebbarer Name, unter dem man das Fenster
dann nicht ansprechen kann. Ein dritter in Anführungsstriche
gestellter String ist optional. Er enthält Steuercodes
für das Fenster. Davon gibt es eine Menge. In Javascript
1.2 sind sehr interessante hinzugekommen, leider funktioniert
nur wieder ein kleiner Teil in beiden Großbrowsern.
Die folgende Tabelle zeigt die herkömmlichen (und meist
funktionierenden) Angaben.
Bezeichnung |
mögliche Werte |
Bedeutung bzw.Kommentar |
directories |
yes, no |
Leiste mit Verzeichnis-Buttons |
height, width |
Pixelzahl, numerisch |
Höhe und Breite des Anzeigebereiches im neuen
Fenster |
left, top |
Pixelwerte |
Angaben zur Positeon des Fensters |
location |
yes, no |
Eingabefeld zur Eingabe von URL's in den Browser |
menubar |
yes, no |
Menüleiste |
resizable |
yes, no |
Fenstergröße veränderlich |
scrollbars |
yes, no |
Horizontale und vertikale Scrollbars werden bei
Bedarf angelegt |
status |
yes, no |
Statuszeile |
toolbar |
yes, no |
Browser-Leiste mit Vor- und Zurück-Button |
Wenn eine Parameter-Angabe erfolgt, gelten alle nicht vorhandenen
als=no gesetzt. Die bloße Angabe eines Merkmals
gilt als =yes. Mehrere Merkmalsangaben werden durch
Komma voneinander getrennt. Besondere Probleme bereiten
die Größenangaben. Da hier keine Parameter akzeptiert
werden, und man den Bildschirm des Nutzers nicht kennt,
sind die Größenangaben nur für relativ kleine
Fenster (für Textausgaben) interessant. Immer, wenn
die Größen nicht umgesetzt werden können,
wird ein Standardfenster geöffnet, das für Webseiten
zu klein ist.
Über einen zugewiesenen Fensternamen kann man aber
glücklicherweise das Fenster mit Befehlen verändern,
die zwar zu JavaScript 1.2 gehören, aber von den aktuellen
Großbrowsern akzeptiert werden.
Die Seite sollte erst nach Anpassung des Fensters geladen
werden, um zu vermeiden, daß sie zweimal aufgebaut
werden muß.
Maximiertes Fenster öffnen
Als erstes soll ein Fenster geöffnet werden, das den
ganzen Bildschirm ausnutzt. Dabei kann allerdings der Nutzer
schwer geärgert werden. Zu rechtfertigen ist es allenfalls,
wenn die zu ladende Seite (es geht natürlich um eine
Fremdseite, Ihre eigenen sind ja alle flexibel genug gestaltet!),
wenn sie also eine Einengung partout nicht verträgt.
Ein Vorteil, der genannt werden soll, das neue Fenster kann
um überflüssige Platzfresser erleichtert werden.
Diese Platzfresser werden allerdings gelegentlich benötigt.
Hier im Beispiel ist die Leiste mit den Lesezeichen weggelassen,
der User 'guckt ja nur mal schnell' und soll dann zur weiteren
Arbeit erst zurückkehren.
Im Kopfbereich wird die erforderliche Funktion definiert:
function oeffne_max(adr)
{
neufens=window.open("","hfens","toolbar,location,status,scrollbars,resizable,menubar");
neufens.moveTo(0,0);
neufens.resizeTo(screen.availWidth,screen.availHeight);
neufens.location.href=adr;
}
am Aufrufort erscheint der Link-Code mit dem Funktionsaufruf:
<a href="javascript:oeffne_max('https://www.meinlink.de')">Der
Link-Text</a> |
Das war schon alles. Nun fehlt noch ein Test. Damit etwas
lädt, nehme ich die Startseite des Kurses. Probiermersch's!
Fenster in alter Größe öffnen
Schön wäre ja, man könnte das neue Fenster
in alter Größe und genau auf dem alten errichten.
Letzteres funktioniert erst mal nicht, weil man die Lage
des Fensters auf dem Bildschirm nicht ermitteln kann.
Eine gute und eine schlechte Nachricht:
Die gute zuerst.
Wenn ein moderner Netscape-Browser benutzt wird, dann kann
mit dem Parameter dependent ein neues Fenster als
"Kind" des vorhandenen angelegt werden. Es wird eine exakte
Kopie angezeigt, bei Netscape (außer 6!) leicht gegen
das alte Fenster versetzt, sofern das alte Fenster nicht
maximiert ist. Das hat den Vorteil, daß das Kind-Fenster
als solches deutlich erkennbar bleibt. Die Verschiebung
um jeweils ca. 30 Pixel nacht rechts und unten wäre
leicht zu beseitigen.
Die schlechte Nachricht.
Der IExplorer kennt "dependent" nicht, weigert
sich auch, irgendwelche Details des aufrufenden Fensters
ermitteln zu lassen. Keine Chance also, das vorhandene Fenster
zu duplizieren. Um nicht immer das ewig zu kleine Standardfenster
zu schaffen, hier ein anderer Vorschlag. Es wird ein Fenster
geöffnet, das z. B. 90% der Bildschirmfläche belegt.
Das ist groß genug, um zeitweilig darin zu arbeiten,
es verrät sich als zusätzlich und seine Kanten
sind für verändernde Mauszugriffe gut zugänglich.
function oeffne_pass(adr)
{
if(navigator.appName.charAt(0)=="N")
neufens=window.open("","hfens","toolbar,location,status,
scrollbars,resizable,menubar,dependent");
else
{
neufens=window.open("","hfens","toolbar,location,status,
scrollbars,resizable,menubar");
neufens.moveTo(0,0);
neufens.resizeTo(0.9*screen.availWidth,0.9*screen.availHeight);
}
neufens.location.href=adr;
}
am Aufrufort erscheint der Link-Code mit dem Funktionsaufruf:
<a href="javascript:oeffne_pass('https://www.meinlink.de')">Der
Link-Text</a> |
Schauen Sie es sich an! Es erscheint,wie oben der Kurs
im neuen Fenster noch einmal. Test
hier!
|
|
|