Hilfe - Suche - Mitglieder - Kalender
Vollansicht: alles im Browserfenster ausblenden
HTML-Editor phase 5 Support > Fragen, Lösungen zu HTML-Problemen bzw. Webdesign-Fragen - Talk > HTML
schrauber
Hallo,
ich möchte gerne auf meiner Webseite ein kleines Browserfenster programmieren um Leute über anstehende Aktionen hinzuweisen. Ich möchte dies gerne so programmieren das ein neues Browserfenster sich öffnet, jedoch OHNE die berühmten Leisten oben im Browserfenster. Des weiteren möchte ich das (Broswer) Fenster in der Höhe und Breite begrenzen.

Wer kann mir das dazugehörige Script schicken oder mir verraten wie ich es programmieren kann.

Danke für eure Antworten im Voraus.....


Gruß

schrauber
Thomas
Hallo Schrauber,

das kannst du (nur) mit JavaScript erreichen, näheres dazu findest du bei SELFHTML.
Conny
Hallo,
im Head notierst Du:
HTML
<script TYPE="text/javascript">
<!--
function OpenBrWindow(theURL,winName,features)
{
window.open(theURL,winName,features);
}
//-->
</SCRIPT>


Im Body kommt dann:
HTML
<A HREF="java script:;" ONCLICK="java script:OpenBrWindow('Deine-seite.htm','Dein-titel','scrollbars=no, resizable=yes, width=430, height=58')">Linktext</A>



cu
Conny

PS
java script wird natürlich als javascript notiert (also ohne leerzeichen):
Thomas
Warum der Umweg über eine zweite Funktion und nicht direkt der Aufruf von window.open()? Zudem finde ich es bei solchen Links immer gut, wenn sie auch ohne JS funktionieren - auch deshalb würde ich den Ansatz von SELFHTML bevorzugen. Wie immer stehe ich natürlich jeder Diskussion über Sinn und Unsinn offen gegenüber wink.gif.
Conny
Hallo Thomas,
ZITAT(Thomas @ 26.11.2007 - 10:42) *
Warum der Umweg über eine zweite Funktion und nicht direkt der Aufruf von window.open()? Zudem finde ich es bei solchen Links immer gut, wenn sie auch ohne JS funktionieren - auch deshalb würde ich den Ansatz von SELFHTML bevorzugen. Wie immer stehe ich natürlich jeder Diskussion über Sinn und Unsinn offen gegenüber wink.gif.


Der 'Umweg' wird deshalb gewählt weil der direkte weg (href=) nicht valide ist.
Die Möglichkeit es auch ohne JS zu ermöglichen bleibt hier so sogar erhalten, wenn man den href auch mit dem Link ausfüllt anstatt nur 'java script:;' zu notieren.

Die Gestaltungsmöglichkeiten gehen so sogar noch viel weiter, statt <A HREF wäre über den von mir gewählten 'Umweg' auch <P OnClick=... STYLE=..und hier die freie Gestaltung...>, oder <DIV... , oder <SPAN.... etc. möglich.


cu
Conny
Thomas
Hallo Conny,

leider kann ich dir nicht ganz folgen.

ZITAT(Conny @ 26.11.2007 - 20:15) *
Der 'Umweg' wird deshalb gewählt weil der direkte weg (href=) nicht valide ist.
Wovon genau schreibst du? Meine Frage
ZITAT(Thomas @ 26.11.2007 - 11:42) *
Warum der Umweg über eine zweite Funktion und nicht direkt der Aufruf von window.open()?
zielte auf folgenden Code ab
HTML
<A HREF="java script:;" ONCLICK="java script:window.open('Deine-seite.htm','Dein-titel','scrollbars=no, resizable=yes, width=430, height=58')">Linktext</A>
(wobei ich vorausgesetzt habe, dass dein Code grundsätzlich valide ist).
Geht das nicht? Wofür brauchst du die Funktion OpenBrWindow()? Und was meinst du mit dem direkten Weg "href="?

JS-Code im HREF-Attribut hab ich bisher noch nicht genutzt, aber selbst das müsste (z. B. nach diesem Beispiel in SELFHTML) gehen. Welchen Sinn macht "javascript:;" im HREF-Attribut? Und was meinst du mit Gestaltungsmöglichkeiten? Wieso kannst du <p>, <div> oder <span> besser gestalten als <a>?

Du verwirrst mich blink.gif.

Also mein HTML-Code würde in etwa so aussehen:
HTML
<a href="datei.htm" onclick="window.open(this.href, 'Zweitfenster', 'width=300,height=400,left=100,top=200'); return false;">Link mit Fenster</a>
Da muss man den URL nur einmal angeben und es funktioniert auch ohne JS.

Ob das Präfix "javascript:" notwendig (oder zumindest standardkonform) ist, weiß ich nicht - nach (wieder mal) SELFHTML erfordert es der HTML-Standard, dass beim Gebrauch von Event-Handler-Attributen die verwendete Scriptsprache zentral angegeben wird (über <meta http-equiv="Content-Script-Type" content="text/javascript"> o.ä.).

Bitte um Entwirrung unsure.gif.

[edit: " durch ' ersetzt, buchstaben vertauscht sowie ein e und eine ) ergänzt.]
Conny
Hallo Thomas,

hier die 'Entwirrung':
Du hast recht, als ich die Codeschnipsel kopiert habe, habe ich diese Zeile übersehen:
function OpenBrWindow(theURL,winName,features)
Selbstverständlich gehört diese Zeile da nicht rein.

DAS hatte ich in meine Antwort noch übersehen, folglich lief meine Antwort an Deine Frage vorbei.

Nicht Valide wäre diese Notierung: a href="javazcript:OpenBrWindow('Deine-seite.htm','Dei...
So wie Du sie vor gegeben hast (<a href="datei.htm" onclick="window.open(this.href, 'Zweitfenster', 'width=300,height=400,left=100,top=200'); return false;">Link mit Fenster</a>) geht es selbstverständlich auch, ist vllt. sogar noch besser!

cu
Conny
Thomas
Ja dann wink.gif.

Dann ist aber das oben referierte Beispiel aus SELFHTML falsch, denn die verwenden da diese Notation:
HTML
<html><head><title>Test</title>
&lt;script type="text/javascript">
function Zeigen () {
alert(window.location.hash);
}
</script>
</head><body>
<p><a href="#a2">Gehe zu a2. Bitte zuerst klicken</a></p>
<p><a name="a2" href="java script:Zeigen()">Hier a2 - bitte dann klicken</a></p>
</body></html>

Und woher kommt dieses "javascript:"-Präfix? Habe dazu nichts gefunden.
Conny
ZITAT(Thomas @ 26.11.2007 - 20:31) *
Dann ist aber das oben referierte Beispiel aus SELFHTML falsch, denn die verwenden da diese Notation:
HTML
<html><head><title>Test</title>
&lt;script type="text/javascript">
function Zeigen () {
alert(window.location.hash);
}
</script>
</head><body>
<p><a href="#a2">Gehe zu a2. Bitte zuerst klicken</a></p>
<p><a name="a2" href="java script:Zeigen()">Hier a2 - bitte dann klicken</a></p>
</body></html>

Und woher kommt dieses "javascript:"-Präfix? Habe dazu nichts gefunden.


Bei der Notierung: a href="javazcript:OpenBrWindow('Deine-seite.htm','Dei...
Gibt es -von Tidy- die Fehlermeldung/Warnung: URI contains impermissible characters

Das lässt sich u.A. lösen indem man als präfix java script:; einsetzt. (Eigentlich ist es wie eine leere Hülle, denn javascript wird angesagt, nach dem : aber gleich wieder mit ; geschlossen. So wird quasi der Weg frei die 'steuerung' über OnClick -oder ähnliches- zu übernehmen.

cu
Conny
Thomas
ZITAT(Conny @ 26.11.2007 - 21:45) *
Bei der Notierung: a href="javazcript:OpenBrWindow('Deine-seite.htm','Dei...
Gibt es -von Tidy- die Fehlermeldung/Warnung: URI contains impermissible characters
Also der w3c-Validator schluckt es und findet es gut. Auch mein Tidy (vom FF-Plugin HTML-Validator) akzeptiert es klaglos.

Im Zweifelsfall vielleicht einfach URL-kodieren:
HTML
<a name="a2" href="java script:window.open%28%27foobar.html%27%2C%27name%27%2C%27argumente%27%29%3B">Hier a2 - bitte dann klicken</a>
enthält bestimmt nichts unerlaubtes, wird aber auch korrekt vom Browser umgesetzt.

ZITAT(Thomas @ 26.11.2007 - 20:31) *
Und woher kommt dieses "javascript:"-Präfix? Habe dazu nichts gefunden.
Damit meine ich tatsächlich das Präfix - wo ist diese Notation (Sprache + Doppelpunkt) definiert? Gibts da einen Standard für?

Wenn du "javascript:;" als "leere Hülle" in den HREF setzt, dann kannst du es doch auch gleich leer lassen (was der w3c-Validator auch akzeptiert, Tidy bei mir aber anmeckert). Oder eben noch besser gleich die URL vom Dokument rein, als Notausgang für fehlendes JS.
Conny
ZITAT(Thomas @ 27.11.2007 - 6:42) *
...wo ist diese Notation (Sprache + Doppelpunkt) definiert? Gibts da einen Standard für?

Das kann ich Dir nicht sagen -habe da nicht weiter nachgeforscht-, aber es funktioniert klaglos und erscheint -mir wenigstens- logisch. Wie viel Sinn sowas am Ende macht, kann dann jeder für sich entscheiden.

ZITAT(Thomas @ 27.11.2007 - 6:42) *
Wenn du "javascript:;" als "leere Hülle" in den HREF setzt, dann kannst du es doch auch gleich leer lassen (was der w3c-Validator auch akzeptiert, Tidy bei mir aber anmeckert).

Weglassen/leer lassen möchte ich es nicht weil Tidy es dann anmeckert. Und es gibt mir an -wenn man im Browser mit der Maus über den Link fährt- das dieser Link mit JS 'gesteuert' wird. Sichtbar am unteren Rand im Browserfenster, da würde beim weglassen dann auch nichts stehen.

ZITAT(Thomas @ 27.11.2007 - 6:42) *
.....Oder eben noch besser gleich die URL vom Dokument rein, als Notausgang für fehlendes JS.

Selbstverständlich!
Ist ja wohl auch -wie ich schon schrieb- die bessere Lösung.

cu
Conny
Thomas
ZITAT(Conny @ 27.11.2007 - 8:59) *
Und es gibt mir an -wenn man im Browser mit der Maus über den Link fährt- das dieser Link mit JS 'gesteuert' wird.
Naja, aber auch nicht mehr - da kaufst du doch die Katze trotzdem im Sack (auch wenn es ein guter Javascript-Sack ist wink.gif). Probier es mal mit dem Kodieren, da sollte Tidy nicht mehr meckern - und dann siehst du in der Statuszeile wirklich, wo es langgeht.

@TE: Kann mir gut vorstellen, dass du mit offenem Mund vorm Forum sitzt und staunst, wie wir uns hier wunddiskutieren rolleyes.gif - aber ich hoffe, deine Frage wurde ausreichend beantwortet?
schrauber
Hallo,

danke für die super antworten.

ich werde das gleich mal am wochenende ausprobieren und dann berichten.

gruß

dennis
Auge
Hallo

Ich präferiere die folgende Notation:

QUELLTEXT
<a href="http://www.example.org/" onclick="FensterOeffnen(this.href); return false;">

im HTML-Quelltext des Links, im <head> der HTML-Datei:

QUELLTEXT
<script src="/pfad/zur/datei/mit/der/funktion.js" type="text/javascript"></script>

sowie in der soeben referenzierten Datei:

QUELLTEXT
function FensterOeffnen(Adresse)
     {
     var Fenster1 = window.open(Adresse,"Zweitfenster","width=300,height=320,status=yes,left=100,top=100");
     Fenster1.focus();
     }

Die Auslagerung in eine externe Funktion ist mMn deshalb zu bevorzugen, weil man die Funktion somit für alle per JavaScript zu öffnenden Fenster wiederverwenden kann. Wobei das return false; durchaus mit in der Funktion notiert werden kann. Weiterhin könnte man auch noch Breite und Höhe des zu öffnenden Fensters als Parameter übergeben, um diese Werte noch zu flexibilisieren.

Was bei all dem zu beachten ist:
In allen (mir bekannten) Browsern lässt sich (im Zweifelsfall über Plugins) einstellen, dass das Öffnen von JavaScript-PopUps unterbunden wird und/oder dass PopUps in einem neuen (normalen) Browserfenster oder -tab geöffnet werden. Weiterhin gibt es Benutzer, denen JavaScript nicht zur Verfügung steht. Um auch Besuchern mit solchen Einstellungen und Beschränkungen den Zugriff zur verlinkten Ressource zu gewähren, dient die zusätzliche Angabe im href-Attribut. Deren Ausführung wird bei aktivem JavaScript mit "return false;" unterbunden. Gibt es kein JavaScript, gibt es auch kein "return false;". Dann wird der Link ganz normal über das href-Attribut ausgeführt.

Ich lasse z.B. alle JavaScript-PopUps und Links, die per "target="..." ein neues Fenster öffnen sollen, in einem neuen Tab öffnen und verbiete ganz allgemein JavaScript um es im Bedarfsfall explizit zu erlauben (NoScript im FF). So, wie oben notiert, komme ich auf jeden Fall zur verlinkten Datei, Seite, was auch immer. Dass die dann eventuell nicht die vom Autor gewünschte Größe hat, muss dieser halt hinnehmen und sollte zu verschmerzen sein.

Tschö, Auge
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2010 Invision Power Services, Inc.