Safari iPad IOS 5 fenêtre.close() de la fermeture de mal fenêtre

Nous avons une application pour iPad qui travaille sur notre ancien ipad.

Nous ouvrir les liens externes à l'aide de
var x = fenêtre.open(url)

à la fin de la journée, lorsque l'utilisateur ferme cette partie de l'application, nous passons par toutes les fenêtres qu'il ouvre et faire x.close() pour chaque et tout est okie dokie.

Essai sur le nouvel iPad avec IOS 5 et de la belle onglets,
l'ouverture de la nouvelle version de windows (bien que maintenant ils ouvrent comme des onglets) c'est bien, mais le faire x.close() ne semble pas nécessairement fermer x, il peut fermer la fenêtre de y ou z. Faire x.focus() ou y.focus() fonctionne très bien, le bon onglet est au point, mais proche semble juste de choisir ce que l'onglet qu'il veut.

Est-ce un bug ou ai-je fait quelque chose de mal? Exemple de programme:

<html>
<head></head>
<body>
<script>
//The openWindow array will hold the handles of all open child windows
var openWindow = new Array();
var win1;
var win2;
//Track open adds the new child window handle to the array.
function trackOpen(winName) {
openWindow[openWindow.length]=winName;
}
//loop over all known child windows and try to close them.  No error is
//thrown if a child window(s) was already closed.
function closeWindows() {
var openCount = openWindow.length;
for(r=openCount-1;r>=0;r--) {
openWindow[r].close();
}
}
//Open a new child window and add it to the tracker.
function open1() {
win1 = window.open("http://www.yahoo.com");
trackOpen(win1);
}
//Open a different child window and add it to the tracker.
function open2() {
win2 = window.open("http://www.google.com");
trackOpen(win2);
}
//Open whatever the user enters and add it to the tracker
function open3() {
var newURL = document.getElementById("url").value;
var win3= window.open(newURL);
trackOpen(win3);
}
</script>
<input type="button" value="Open 1" onclick="open1()">
<input type="button" value="Open 2" onclick="open2()">
<input type="button" value="Focus 1" onclick="win1.focus()">
<input type="button" value="Focus 2" onclick="win2.focus()">
<input type="button" value="Close 1" onclick="win1.close()">
<input type="button" value="Close 2" onclick="win2.close()">
URL: <input type="text" id="url"> <input type="button" value="Open URL" onclick="open3()">
<input type="button" value="Close All" onclick="closeWindows()">
</body>
</html>
Avez-vous comprendre comment contourner ce problème?
Non, j'ai posté quelques jours seulement avant que le code était dû. Nous avons dit au client que nous ne pouvions pas mettre en œuvre la fonctionnalité :-/ Malheureusement, le code a déjà de la fenêtre.close() dans certains endroits, et a provoqué une belle production de problème pour nous

OriginalL'auteur Lissy | 2011-11-02