Hallo,
Ich möchte einen neues Browserfenster mit der Javascript Funktion open() öffnen. Da open eine Refernez auf das Fenster zurück gibt möchte ich aus dieser gerne die URL abfragen, aus dem location Objekt.
mir war das eigentlich aus deiner Beschreibung klar ...
myRef=window.open(url,'mywin', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0');
[...]
if(myRef){
document.getElementById("UrlToAdd").innerHTML = myRef.location.href;
}
Halt, halt, nicht so schnell!
Leider kriege ich bei dem Versuch auf location oder location.href eine Fehlermeldung.
Ja, du bist eine Ecke zu früh abgebogen. Du musst noch das document-Objekt im neu geöffneten Fensterobjekt adressieren:
document.getElementById("UrlToAdd").innerHTML = myRef.document.location.href;
Denn das location-Objekt ist unterhalb von document angesiedelt, die Referenz aus window.open() verweist aber auf das window-Objekt des neuen Fensters (oder ist null, wenn das Öffnen z.B. wegen eines Popup-Blockers fehlschlug).
Die Same Origin Policy gilt natürlich immer noch, wobei lokale Dateien als eine Domain für sich gelten. Du kannst also im Kontext einer Seite aus dem Web nicht lokale Dateien zusätzlich öffnen. Doch, öffnen schon, aber dann nicht mehr darauf zugreifen.
So long,
Martin
Niemand lebt allein von seinen Träumen.
Aber wer träumt, lebt noch.