Questo è un known issue in jQuery mobile. La riga incriminata è jquery.mobile.navigation.js:913.
// Kill the keyboard.
// XXX_jblas: We need to stop crawling the entire document to kill focus. Instead,
// we should be tracking focus with a live() handler so we already have
// the element in hand at this point.
// Wrap this in a try/catch block since IE9 throw "Unspecified error" if document.activeElement
// is undefined when we are in an IFrame.
try {
$(document.activeElement || "").add("input:focus, textarea:focus, select:focus").blur();
} catch(e) {}
C'è la chiamata a blur()
che è l'invio di finestre di IE alla parte posteriore della pila.
Come soluzione temporanea, è possibile evitare ciò ponendo i tag di script fisicamente nello <head>
dell'HTML.
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.css" />
<script src="http://code.jquery.com/jquery-1.6.2.js"></script>
<script src="http://code.jquery.com/mobile/latest/jquery.mobile.js"></script>
...
Posizionare i tag di script in un altro punto del documento o inserirli tramite script attiva il bug.
This Fiddle illustra la soluzione alternativa. Si noti che questo funziona solo in un documento di livello superiore . Se il documento è in un , il bug verrà comunque visualizzato. Pertanto, se si apre l'editor JSFiddle in IE 7/8, verrà comunque inviato al retro; ma se apri solo lo rendered HTML, non lo farai.
Posso confermare che vedo succedere in IE 7 su una semplice VM. Nello specifico, la finestra non è * minimizzata * - viene mandata in fondo allo stack (minimizza altre finestre e troverai la tua finestra di IE ancora aperta), che sembra un 'window.blur()' chiamato da qualche parte. (Sul mio IE 9, non minimizza/sfoca né entra in modalità di compatibilità.) – josh3736