Thanks voor de feedback, dit waren mijn gedachten ook. Toch had ik liever gehad dat je kan kijken welke vensters open zijn, hierdoor kan een gebruiker zijn vensters sluiten (op de flashplayer na) en later via de website (in een nieuwe parent) de playlist weer vullen.
Desalniettemin is het onderstaande het resultaat, hierbij moet de parent wel open blijven. Het is wel mogelijk een andere website te bezoeken met de initiele parent om vervolgens weer terug te keren.
Parent:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <html>
<head>
<title>Parent</title>
<script type="text/javascript">
var winPop;
var hasHandle = false;
function OpenWindow(){
winPop = window.open("child.html","winPop");
hasHandle = true;
}
function handleUnload () {
alert('handling unload');
winPop.passData(winPop)
}
function receiveData(popup) {
alert('receiving data');
winPop = popup;
hasHandle = true;
}
</script>
</head>
<body onunload="handleUnload()">
<a href="javascript:;" onclick="OpenWindow()">Open</a><br />
<a href="javascript:;" onclick="winPop.checkHandle()">Check handle</a><br />
</body>
</html> |
Child:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| <html>
<head>
<title>Child</title>
<script type="text/javascript">
var thisWindow;
function checkHandle() {
alert('handle checked');
}
function passData(popup){
thisWindow = popup;
setTimeout("SendToParent()", 2000);
}
function SendToParent() {
if (window.opener != null && !window.opener.closed) {
try { //nodig ivm cross domein errors
window.opener.receiveData(thisWindow);
if (window.opener.hasHandle) {
alert ('handle transferred');
}
else {
setTimeout ("SendToParent()", 2000);
}
}
catch(err) {
setTimeout ("SendToParent()", 2000);
}
}
else {
alert('parent has left the building');
}
}
</script>
</head>
<body>
</body>
</html> |
[
Voor 5% gewijzigd door
EnsconcE op 20-02-2010 00:21
]