933 Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo liebe Profies!

Folgendes Szenario:

- Aus Fenster A öffnet man mit "open" das Fenster B.
- Aus Fenster B ändert man einen Wert mittels
"window.opener.document.getElementById()" in Fenster A.

Wenn jetzt Fenster B mitels F5 oder sonstwie neu geladen wird
scheint das opener Objekt nicht mehr zu funktionieren.

Fenster A hat auch einen Name nur klappt der Code nicht oder ist
Flasch:

"fenstera.document.getElementById()"

Was müsste ich tun um trotz reload von Fenster B auf Fenster A
zugreifen zu können?

vielen Dank im voraus!
MfG

1 Antwort

0 Punkte
Beantwortet von kicia Mitglied (939 Punkte)
bei mir funktionierts in FF und Opera
(bei IE hab ich so schnell nicht herausgefunden, wie man das popup zulässt).

Mit F5 kann man reloaden, das opener document bleibt verfügbar.

datei 1.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>opener</title>
<script type="text/javascript">
function init(){
msg( 'open 2.html' );
window.open('2.html');
}

function msg( s ) { document.body.innerHTML += s + '<br>'; }
window.onload = init;
</script>
</head>
<body>
<div id="divinhalt">div inhalt</div>
</body>
</html>


datei 2.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>popup</title>
<script type="text/javascript">
function init(){
msg( +(new Date()) );
msg( 'opener: ' + window.opener.location );
msg( 'url: ' + window.location );
msg( 'div: ' + window.opener.document.getElementById('divinhalt').innerHTML );
}

function msg( s ) { document.body.innerHTML += s + '<br>'; }
window.onload = init;
</script>
</head><body></body></html>
...