Hallo Gernot,
Ein einfaches: [...] sollte doch im Normalfall auch funktionieren, vorausgesetzt, [...]
Du schreibst ja selbst, dass die name-Lösung bestimmte Voraussetzungen braucht. Die andere Lösung funktioniert dagegen ohne eine derartige Einschränkung - und der einzige wirkliche Unterschied ist:
name-Lösung:
if (bla.name == self.name)
Andere Lösung:
if ((bla.contentWindow == self) || (bla.contentDocument == document) || (bla.document == document))
Insofern kann ich nicht ganz nachvollziehen, warum Du die name-Lösung vorziehen willst - die andere Lösung funktioniert immer (außer wenn JS aus ist oder so), standardkompatibel (sprich: zukunftssicher) und sie hat im Endeffekt nur eine *leicht* kompliziertere if-Abfrage, ansonsten sind beide Ansätze identisch.
Viele Grüße,
Christian