Ja, die Verwendung des Pseudoprotokolls «javascript:» hat so seine Tücken. Da es eben ein Pseudoprotokoll ist, ist seine Implementierung nicht einheitlich, noch weniger als andere normierte Feature...
Z.B. Opera5 öffnete immer ein neues Fenster, wenn dieses Pseudoprotokoll benutzt wurde.
Zum Problem: Offenbar wird der Seiteninhalt des Parent-Window entfernt, wodurch der onunload-Event getriggert wird. Ohne es getestet zu haben, vermute ich, dass die Location durch die Verwendung des Pseudoprotokolls «javascript:» überschrieben wurde. Um das zu verhindern, kann der «void()» Operator benutzt werden, z.B.:
javascript:void("popup('sound.html','sound','300,400')")
siehe hierzu:
http://selfhtml.teamone.de/.../operatoren.htm#void Es bleibt natürlich immer noch die Unsicherheit durch die Verwendung des Pseudoprotokolls «javascript:». Dies wird sich nur durch entsprechende Änderung der Architektur der gesammten Seite vermeiden lassen.