Kalle: Fenster und Tab: Namenproblem

Hallo,

1.
so kann ich ein Fenster erzeugen mit dem Namen "tm111":
<a href='index.htm' target='tm111'>Start</a>

Zur Kontrolle des Fensternamens zeige ich mit JavaScript an:
alert( window.name );

Wenn ich im Firefox allerdings den Link mit der rechten Maustaste in einem neuen Tab aufmache, hat dieses Fenster KEINEN Namen. **** FF klaut den Namen! ****

2.
Ich mache den Tab auf mit einer anderen Datei:
<a href='set_tm111.htm' target='tm111'>Tab</a>

set_tm111.htm enthält:
<body onLoad="window.name='tm111'">
<p onClick="alert( window.name )">Name verraten</p>
...

Und tatsächlich, dieses Tab hat nun den Namen "tm111"

3.
Ich klicke nochmal auf den Link (2), diesmal mit der linken Maustaste. Nun wäre es doch logisch, das Ergebnis in dem soeben konstruierten Tab zu finden. Aber nein, FF macht ein neues Fenster auf und nun habe ich

  • einen Tab mit Namen 'tm111"
  • ein eigenständiges Fenster mit Namen 'tm111'

Und nur das Fenster kann mit target='tm111' angesprochen werden.

Wie zum Teufel kann ich den Tab ansprechen?

LG Kalle

  1. habe hier was gefunden, wie Tabs innerhalb eines Fensters "gefunden" werden können:
    http://www.chip.de/c1_forum/thread.html?bwthreadid=841332&bwpage=2&bwsortorder=ascending
    und dann Stichwortsuche nach "tabbed"

    Auszug:
    (1) Erstmal das "Top-Level" Window finden, das ein OUIWINDOW als Child hat. Das ist unser "Parent". Dann (2) davon das erste Child-Window der jeweiligen Klasse (entweder OpWindow oder OperaWindowClass) finden. Das ist dann das neue Parent-Window. etc.. Das geht dann so in der Hierarchie runter bis zu dem Window, das sehr wahrscheinlich das aktuell angezeigte Fenster (Stichwort "tabbed browsing") ist. Dann (3) dorthin die obigen Messages senden. (Das WM_SETFOCUS ist nötig, da - wie du richtig beschrieben hast - nur auf WM_KEYXXX Messages keine Reaktion stattfindet. Anscheinend prüft Opera zusätzlich, ob das Window den Input-Focus hat). Da dürfte imho im Zusammenspiel mit anderen Anwendungen eigentlich nichts passieren, weil wir ja nur vortäuschen, dass das Fenster den Focus erhalten hat und nicht "tatsächlich" kurz umschalten.

    Nur, ich verstehe den Code nicht. Kann mir das mal jemand auf JavaScript oder PHP übersetzen?

    LG Kalle

    1. gudn tach!

      habe hier was gefunden, wie Tabs innerhalb eines Fensters "gefunden" werden können:
      http://www.chip.de/c1_forum/thread.html?bwthreadid=841332&bwpage=2&bwsortorder=ascending
      und dann Stichwortsuche nach "tabbed"

      ja, aber ich denke, das bringt dir nix, denn ...

      Kann mir das mal jemand auf JavaScript oder PHP übersetzen?

      nee, das laesst sich nicht uebersetzen. mit javascript hat man (zum glueck) nicht so viele eingriffsmoeglichkeiten und mit php kannst du nur server-seitig arbeiten.

      oder geht es dir gar nicht um web-programmierung, sondern willst du eh nur auf _deiner_ festplatte / in _deinem_ ram rumhantieren?

      prost
      seth

  2. Hallo,

    Wie zum Teufel kann ich den Tab ansprechen?

    Gar nicht.
    Das ist zur Zeit auch nicht gewollt. Sehr intreressante Diskussion dazu:
    https://bugzilla.mozilla.org/show_bug.cgi?id=105409
    https://bugzilla.mozilla.org/show_bug.cgi?id=138198

    (Auch der IE 7 wird einstweilen sowas nicht unterstützen: [linkhttp://blogs.msdn.com/ie/archive/2005/05/26/422103.aspx])

    Du muss auf die Unterstützung von CSS3 warten:
    a { target-new:tab; }
    http://www.w3.org/TR/2004/WD-css3-hyperlinks-20040224/#target-new

    Grüße
    Thomas