2010-03-28 15 views
7

Ciao a tutti sto sviluppando un'applicazione di chat ... ho più finestre di chat ... voglio sapere quale windw contiene un nuovo messaggio ... io hanno il seguente codice ..window.focus(), self.focus() non funziona in firefox

function getCount() 
{ 
    $.ajax({ 
     type: "POST", 
     url: baseUrl + '/Chat/count', 
     data: "chat_id=" + document.ajax.chat_id.value, 
     success: function(msg){ 
       if(msg == 'new1') { 
        self.focus(); 
              //window.focus(); 

       } 
      } 
    }); 
} 

Se un operatore sia la chat ....

per esempio l'URL è simile http://localhost/nisanth/admin/Chat/index/chatId/15 http://localhost/nisanth/admin/Chat/index/chatId/16

http://localhost/nisanth/user/Chat/index/chatId/15 http://localhost/nisanth/user/Chat/index/chatId/16

se il user 16 inserire un messaggio che ho bisogno concentro

http://localhost/nisanth/admin/Chat/index/chatId/16 

Questo codice è funzionano bene con IE, ma non in Firefox ... per favore mi dia una soluzione ... il codice di cui sopra è in stesso codice

+1

Non vedo come possa funzionare in IE; 'self' non è definito nel codice citato. Se è definito altrove, è meglio mostrarlo, dal momento che è importante sapere a cosa serve fare riferimento. –

+0

auto o finestra funziona in IE –

+0

In che modo "... voglio sapere quale finestra contiene un nuovo messaggio ..." si riferisce a "focus" che non fa ciò che ci si aspetta? (Inoltre, puoi spiegare di più cosa intendi con questo?) –

risposta

11

Firefox rispetterà solo le richieste di apertura di una finestra se è impostata un'opzione di sicurezza e non è impostata per impostazione predefinita. Chrome non presterà attenzione alle richieste di focus(), per quanto ne so. Safari obbedisce alla richiesta di focus().

La specifica impostazione di Firefox è nella finestra di dialogo "Strumenti" -> "Opzioni" ("Modifica -> Preferenze" su Linux, forse MacOS). C'è una scheda "Contenuto" e in questo c'è una casella di controllo per abilitare Javascript. Insieme a che è un pulsante "Avanzate" che richiama un'altra finestra di dialogo, in cui si trova una casella di controllo per consentire (o non consentire) l'aumento e l'abbassamento di finestre per codice di pagina.

edit: Ecco una pagina di prova: http://gutfullofbeer.net/focus1.html e si dovrebbe essere in grado di vedere che Firefox sarà alzare una finestra quando la pagina chiama window.focus(). È necessario che il browser sia configurato in modo che le nuove finestre (create con window.open()) si aprano in una nuova finestra separata anziché in una scheda, oppure quando si apre la scheda della pagina secondaria.

+2

l'ho già abilitato ... ma non usare .... non sto ancora utilizzando focus.focus() –

+0

Bene, allora devi fare qualcosa sbagliato, perché funziona sicuramente.Hai provato a inviare un "alert()" quando pensi che la tua chiamata a "window.focus()" abbia luogo? L'avviso – Pointy

+0

funziona, self.blur(), working, window.moveTo() tutto questo funziona: (... se alert() funziona, la finestra viene messa a fuoco ma il mio client non lo desidera;) –