| 

.NET C# Java Javascript Exception

0
Folgende Aufgabe unter Windows ab XP:

Wenn ich auf eine HTML-Datei doppelklicke oder unter Start/Ausführen eine URL eingebe, wird die entsprechende Seite in einem neuen Fenster des Default-Browsers geöffnet. Ich möchte nun aber, dass bestimmte Seiten/URLs immer im selben Browser-Fenster/-Tab aufgehen. Beim ersten Mal wird es geöffnet, bei den folgenden Aufrufen wiederverwendet. Also ziemlich genau das, was das target-Attribut eines Anchors leisten würde, wenn der Aufruf aus einer HTML-Seite käme, die schon in dem betreffenden Browser geladen ist. Genau das ist aber nicht der Fall - ich bin in einer externen Anwendung, die den Browser erst starten muss, aber eben nicht jedesmal ein neues Fenster aufmachen soll.

Falls es was hilft, sich auf den IE (ab IE 7) zu beschränken, wäre das auch ok.

Mit Kommandozeilen-Parametern bin ich nicht weitergekommen. Der IE scheint da kein Äquivalent zu "target" zu haben, und das ist der einzige Browser, den ich als vorhanden voraussetzen kann (und der neben FF, Opera etc. auch auf jeden Fall unterstützt werden muss).

Ansonsten hatte ich noch die Idee, eine temporäre HTML-Seite zu erzeugen, die einfach nur mit "window.open" das eigentliche Ziel im gewünschten Tab öffnet und sich dann gleich selbst wieder schließt. Da laufe ich aber in Probleme mit Popup-Blockern und Javascript-Einschränkungen, was das Schließen angeht.

Kennt irgendjemand eine clevere Lösung?
News:
26.09.2011
Matthias Hlawatsch 13,2k 4 9
2 Antworten
0
Geht es um eine Kundenanwendung? Wenn nicht müsste diese Einstellung beim IE passen: Force IE to open link in new tab
Bei mir hat es geklappt.
26.09.2011
Jürgen Luhr 7,1k 1 9
Wegen Kundenanwendung frage ich, weil eine Einstellung beim IE nötig ist.
<ironie>Toll, dass man seine Beiträge nicht mehr editieren darf </ironie>
So gleichen sich wenigstens die Antorten den Kommentaren an.
Jürgen Luhr 26.09.2011
Antorten sollte Anworten sein :o)
Soviel zum Thema "Editieren".
Jürgen Luhr 26.09.2011
Es geht auf jeden Fall um eine Anwendung, die wie ein Produkt verteilt werden soll. Die IE-Settings anzupassen, wäre dann schon ein sehr tiefer Eingriff.
Vor allem wäre das aber noch nicht die gewünschte Lösung. <a href="..." target="myTarget"> öffnet einen Tab oder ein Fenster je nach Gusto und Einstellungen des Anwenders - aber es ist immer derselbe Tab oder dasselbe Fenster. Und so brauche ich das auch. Mit der von Dir genannten Einstellung bleibt zwar alles in einem Fenster, aber soweit ich sehe geht mit jedem Aufruf immer noch ein neuer Tab auf.
Matthias Hlawatsch 26.09.2011
Das
http://www.w3.org/TR/css3-hyperlinks/#the-target-new
wird dir noch nichts bringen.
Workarounds kenne ich keine.
Dann kann ich nicht weiterhelfen.
Jürgen Luhr 26.09.2011
0
Mit ein bißchen Aufwand drumherum habe ich eine 80%-Lösung gefunden:

Ich baue eine .NET-Anwendung mit Windows Forms. (Das hatte ich sowieso vor. Aber da ich den Browser bislang über Process.Run() starte und das ein sehr allgemeiner Mechanismus ist, schien mir das nicht besonders wichtig.) Darin bringe ich ein WebBrowser-Control unter, setze es aber auf Visible=false, denn ich will die Seiten ja im normalen, externen Browser sehen. Wenn ich nun eine Webseite im (externen) Browser öffnen lassen will, lade ich in den eingebetteten Browser eine Seite, die nichts enthält als eine Zeile Javascript mit einem window.open-Befehl, der ein Browser-Fenster-Target vorgibt. Die Seiten werden dann im IE geöffnet (leider nicht im Default-Browser, aber damit könnte ich vorerst leben), und zwar wie gewünscht immer im selben Tab.
26.09.2011
Matthias Hlawatsch 13,2k 4 9

Stelle deine Windows-Frage jetzt!