peterS.: Zugriff auf opener nach Seitewechsel?

Beitrag lesen

gruss abtauchen, hallo Struppi,

struppi hat recht - nicht das "document" ist der opener,
   sondern das "window"-objekt in welchem "document" liegt-

dem eher unwahrscheinlichen fall, das einem remote-window
   die referenz auf seinen opener "verloren gehen" sollte,
   kann man noch zusaetzlich vorbeugen, indem man den "opener"
   explizit in dieser form setzt:

var remoteWin = window.open("","...","...");
   remoteWin.opener = this;

so laeuft z.b. dieser code anstandslos in NN 4.x, mozilla 1.1, msie 6.0, opera 6 und opera 7:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
    <title>opener</title>
    <meta http-equiv="content-script-type" content="text/javascript" />
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    <script type="text/javascript">
    <!--
        function openRemote() {
            var remoteContent = ''+
            '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n'+
            '<html>\n'+
            '\n'+
            '<head>\n'+
            '    <title>remote</title>\n'+
            '    <meta http-equiv="content-sc' + 'ript-ty' + 'pe" content="text/ja' + 'vasc' + 'ript" />\n'+
            '    <meta http-equiv="content-ty' + 'pe" content="text/ht' + 'ml; charset=ISO-8859-1" />\n'+
            '    <sc' + 'ript ty' + 'pe="text/ja' + 'vasc' + 'ript">\n'+
            '    <' + '!-' + '-\n'+
            '        function changeOpenerContent() {\n'+
            '            var openerContentNew = ''+\n'+
            '            '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n'+\n'+
            '            '<html>\n'+\n'+
            '            '\n'+\n'+
            '            '<head>\n'+\n'+
            '            '    <title>still opener - changed content</title>\n'+\n'+
            '            '    <meta http-equiv="content-ty' + 'pe" content="text/ht' + 'ml; charset=ISO-8859-1" />\n'+\n'+
            '            '</head>\n'+\n'+
            '            '\n'+\n'+
            '            '<body>\n'+\n'+
            '            '    <p>content of "remoteWin"s opener got changed<br /><br />der inhalt des openers von "remoteWin" wurde geändert</p>\n'+\n'+
            '            '</body>\n'+\n'+
            '            '</html>\n'\n'+
            '            opener.document.open("text/html");\n'+
            '            opener.document.write(openerContentNew);\n'+
            '            opener.document.close();\n'+
            '            alert("content of opener has changed\nder inhalt des openers hat sich geaendert");\n'+
            '            alert("prove if \"remoteWin\" still can reference its opener -\npruefen, ob \"remoteWin\" noch auf seinen opener referenzieren kann -\n\nopener.name = "+opener.name+"\nopener.document.title = "+opener.document.title);\n'+
            '        }\n'+
            '    /' + '/--' + '>\n'+
            '    </sc' + 'ript>\n'+
            '</head>\n'+
            '\n'+
            '<body onload="if(opener){alert('opener.name = '+opener.name);changeOpenerContent();}">\n'+
            '    <p>html content of "remoteWin" itself<br /><br />html inhalt von "remoteWin"</p>\n'+
            '</body>\n'+
            '</html>\n';
            var remoteWin = window.open("","remoteWindow","width=350,height=100,resizable=yes,scrollbars=yes");
            this.name = "openerWin";
            remoteWin.opener = this;
            remoteWin.moveTo(350,250);
            remoteWin.document.open("text/html");
            remoteWin.document.write(remoteContent);
            remoteWin.document.close();
        }
    //-->
    </script>
</head>

<body onload="openRemote()">
    <p>html content of "remoteWin"s opener<br /><br />html-inhalt der opener-seite von "remoteWin"</p>
</body>
</html>

viel erfolg und by(t)e by(t)e - peterS. - pseliger@gmx.net

--
sh:| fo:) ch:? rl:| br:& n3:} n4:# ie:| mo:{ va:| de:[ zu:] fl:) ss:) ls:& js:)