Target="_blank" auf http/html-Links beschränken?

Hallo Fachleute,

kleines Problemchen:
ich hab mir ein private Homepage geschrieben, die auf der Startseite zunächst mal nur eine Linkliste ist, mit allem, was ich halt so täglich brauche/aufrufe, dazu ein paar Kalenderfunktionen, Geburtstagswarner, Kredit-Abfrage bei 9kw und ähnliches Zeugs. Nix wirklich dolles.

Jetzt wollte ich, das alle Links grundsätzlich in einem neuen Fenster geöffnet werden, damit ich nicht immer zurück muss (ja, bei einem Rechner kann man das auch mit der rechten Maustaste machen, aber auf einem Tablet ist das eher lästig), dies habe ich mit im Header der Seite umgesetzt (da es an die Hundert Links gibt wollte ich das nicht bei jedem einzeln machen).
Im Prinzip tuts das auch prima - mit dem kleinen, aber häßlichen Manko, das jetzt die Javascript-Links (wie z.B. , der einfach nur den Kalender einen Monat vorblättern soll) ebenfalls in einem neuen Fenster geöffnet werden - also nicht mehr funktionieren.

Frage: gibt es eine Möglichkeit (oder einen alternativen Befehl), mit dem man auf http/html-Links beschränkt?

Heissen Dank!
mabuse

JavaScript öffnet mit window.open
wo dann in den parametern das Fenster z.b. _blank angegeben wird
das hat so gesehen ncihts mit eine a href zu tun .

überschreib die open funktion

window.open_ = window.open;
window.open = function(url, name, props) {
var ques = (url.indexOf("?")

JavaScript öffnet mit window.open
wo dann in den parametern das Fenster z.b. _blank angegeben wird
das hat so gesehen ncihts mit eine a href zu tun .

Du verstehst mich falsch - ich öffne gar nichts mit Javascript und will das auch nicht.

Mit Javascript konstruiere ich die Kalender und ähnliche Sachen, die dann in DIV-Bereiche geschrieben werden. Diese Kalender beinhalten aber Links, mit denen man den Kalender einen Monat vor/zurück blättern kann. Und diese Links werden mit jetzt auch in einem neuen Fenster geöffnet, anstatt einfach nur das Script erneut aufzurufen, das dann den geänderten Kalender neu zusammensetzt und den wieder in den DIV-Bereich einträgt.

Die Frage ist, on man irgendwie auf Links der Art beschränken kann, das aber kein neues Fenster bei[geöffnet wird.lg, mabuse](Javascript:…())

Hallo ,

Du verstehst mich falsch - ich öffne gar nichts mit Javascript
und will das auch nicht.

du schreibst was von javascript (funktionsaufruf ist javascript )

Mit Javascript konstruiere ich die Kalender und ähnliche
Sachen, die dann in DIV-Bereiche geschrieben werden. Diese
Kalender beinhalten aber Links, mit denen man den Kalender
einen Monat vor/zurück blättern kann.

was heisst blättern ??? html seite oder javascript intern
also ich mach meine mit CANVAS da gibt es gar nicht sowas was du beschreibst …
also ohne code ist hier gar nichts klar

Und diese Links werden
mit jetzt auch in einem neuen Fenster
geöffnet, anstatt einfach nur das Script erneut aufzurufen,
das dann den geänderten Kalender neu zusammensetzt und den
wieder in den DIV-Bereich einträgt.

Die Frage ist, on man irgendwie auf
Links der Art beschränken kann, das aber kein neues

Fenster bei [geöffnet wird.](Javascript:…())

also doch javascript …

das was da steht würde ich ganz anders lösen
[

lg, mabuse

wie gesagt, keiner kann wissen wie du da deine sachen gestalttest , entweder ist es ein javascript kalender (dom durch js erzeugt und verwaltet) oder ein html kalender (durch links und parameter verwaltet) oder ein canvas calender (gezeichnet durch javascript)
und alle hybride sind hier noch gar nicht überlegt.

Danke und hoffe es hilft .

Du könntest aber auch versuchen mit z.b. jquery anstatt base
$("#content a[href^=‚http://‘]").attr(„target“,"_blank");

oder das target angeben oder ganz anders an die sache rangehen .](javascript:void())

1 Like

onclick=„this.target=’_blank’“

hab ich auch noch gefunden .

Hei!

erst mal vielen Dank für deine Mühe - aber ich glaube, wir reden immer noch aneinander vorbei.

Aber okay, machen wir’s mit Quelltext:

Die Seite sieht (auszugsweise) so aus:

table class=„menu“>

Arbeit
BM Justiz & Verbraucherschutz
EUR-Lex
LEO
SelfHTML - CSS
Boards
VU+Support-Board
Wer Weiss Was?
Video-Software und -Technik bei Gulli

Wie schon gesagt, ist in erster Linie eine Tabelle mit den Links, die ich täglich brauche.

Dazu kommen ein paar Scripte, die beim Seitenaufruf oben in die beiden DIV-Bereiche den Kalender schreiben:

function MonatsKalender() {
var monarray = new Array(„Januar“, „Februar“, „März“, „April“, „Mai“, „Juni“, „Juli“, „August“, „September“, „Oktober“, „November“, „Dezember“);
var wotagarray = [„Mo“,„Di“,„Mi“,„Do“,„Fr“,„Sa“,„So“];
var kalstart = new Date(); kalstart.setDate(1); kalstart.setMonth(kalendermonat); kalstart.setFullYear(kalenderjahr);
var starttag = (kalstart.getDay() - 1)%7; if (starttag ‚;
output+= monarray[kalendermonat] + ’ ’ + kalenderjahr;
output+=‘ ‚;
output+=‘’;
for (var i=0;i’ + wotagarray[i] + ‚‘ };
output+=‚Sa‘
output+=‚So‘
output+=’’
for (var i=starttag;i>0;i–) { output+= MachZelle(1,tageimvormonat-i+1,(starttag-i)%7); }
for(var i=1; i ‚; starttag = 0; }
output+= MachZelle(2, i, (starttag)%7);
starttag++; }
var folgemonat=1;
for (var i=starttag;i‘

document.getElementById(„KalenderdesMonats“).innerHTML = output;

FeiertageEintragenMonat(); HeuteMarkieren(); MuelltageMonat(tageindiesemmonat); GeburtstageMonat(tageindiesemmonat); }

Die Unterfunktionen spar ich mir mal, das wird a bisslerl arg lang - geht ja auch nicht um die Funktion an sich.

Aber: dieses Script schreibt in den Code, den es generiert und später in die DIV-Bereiche einträgt, eben auch Links wie [. Diese Links rufen lediglich die gleiche Funtion wi…](Javascript:Monatzurueck())im Header der HTML-Seite gelöst, und das funktionie…[
Das ist doch mal ein guter Ansatz.
Ist zumindest teilweise die Lösung, bei Klick auf Vor, zurück, heute funktioniert das, der Kalender wird aktualisiert, ohne das ein neues Fenster aufgeht. Dafür danke ich dir vielmals.

An drei Stellen hat’s nicht geklappt, aber da hab ich mit target="_self" einfach mal „zu Fuß“ Hand angelegt, das ist ja übersichtlich.

An einer Stelle verzweifle ich allerdings noch.
Beide Kalender (Monat und Jahr) haben eine Einklapp-Funktion:

](javascript:void())[–>function VersteckeMonatsblock() { if ( document…](Javascript:void())[–>function VersteckeJahresblock() { if ( document…](Javascript:void())
Funktionieren tun beide, der jeweilige Kalender wird ausgeblendet.
Aber beim Jahreskalender geht ein neues Fenster aus, beim Monatskalender nicht. Ich starre jetzt seit einer halben Stunde auf die beiden Funktionen, aber ich seh den Unterschied nicht…

An einer Stelle verzweifle ich allerdings noch.

Hat sich erledigt - ein verrutschtes Anführungszeichen kann einem den ganzen Tag versauen… :smiley:

Ist zwar nicht die Lösung, die ich erwartet hatte, (mir ist immer noch unklar, wieso [ein neues Fenster öffnet,](Javascript:Monataufheute())[dagegen nicht) - aber Hauptsache, es funktioniert j…](Javascript:void())

Ich sehe einen Fehler in deinem Ansatz, was den Aufruf von JavaScript-Hyperlinks angeht (wie z.B. .

Diese Syntax ist veraltet und sollte heute nicht mehr eingesetzt werden.

Wenn du deine JavaScript-Hyperlinks folgendermaßen änderst, bist du zwar noch immer nicht auf dem neuesten Stand, aber näher dran und es funktioniert auch mit :

Das ruft deine JavaScript-Funktionen auf, statt dem Hyperlink zu folgen.

Das „return false;“ als letzte Anweisung verhindert, dass der Hyperlink zum Ziel navigiert, nachdem er die JavaScript-Funktion fertig ausgeführt hat (deshalb darf als Zieladresse irgendetwas stehen, egal was - es wird ja nicht verwendet. Aber es muss etwas drin stehen, sonst wird’s kein Hyperlink, sondern ein Anker).

An einer Stelle verzweifle ich allerdings noch.

Hat sich erledigt - ein verrutschtes Anführungszeichen kann
einem den ganzen Tag versauen… :smiley:

Ist zwar nicht die Lösung, die ich erwartet hatte, (mir ist
immer noch unklar, wieso [ein neues Fenster öffnet,](Javascript:Monataufheute())[dagegen](Javascript:void())

weil href die rückgabe von javascript öffnet ,
und wenn es keine rückgabe gibt also void() , dann wird auch kein fenster geöffnet

es ginge auch mit false etc . aber void() ist genauso gängig

nicht) - aber Hauptsache, es funktioniert jetzt.

Ich Danke dir vielmals!
mabuse