J'ai un lien qui devrait s'ouvrir dans un nouvel onglet, mais si l'onglet est déjà ouvert, passez-le simplement. J'ai essayé avec javascript, wnd = window.open () et que wnd.focus (), cela fonctionne dans Chrome 19, mais pas dans FF 13 ou IE 9.. J'ai écris :
<script type="text/javascript">
var loadingTableWnd;
function openOrSwitchToWindow(url){
if(loadingTableWnd == undefined)
loadingTableWnd = window.open(url,'myFrame');
else
loadingTableWnd.focus();
}
</script>
<a href='javascript:openOrSwitchToWindow("/");' >Loading Table</a>
Toute idée de comment puis-je ouvrir ou passer de tous les navigateurs?
EDIT: Je dois ouvrir le lien dans un nouvel onglet, pas dans une fenêtre autonome.
Différents navigateurs se comportent différemment pour window.open () et focus () . Pour ce code window.open('www.sample.com','mywindow').focus()
Violon à tester avec: http://jsfiddle.net/jaraics/pEG3j/
Vous ne devriez pas avoir besoin de logique pour quelque chose comme ça. Par défaut, la spécification du deuxième paramètre pour window.open()
donne à la fenêtre un "nom", que le navigateur se souvient. Si vous essayez d'appeler window.open()
avec le même nom (après l'avoir déjà ouvert), la nouvelle fenêtre ne s'ouvre pas ... mais vous devrez peut-être quand même appeler .focus()
. Essaye ça:
var a = window.open(url, "name");
a.focus();
Celles-ci devraient être les seules lignes de code de votre fonction, et vous n'avez pas besoin de la variable loadingTableWnd
...
Si la fenêtre est déjà ouverte et si vous voulez vous concentrer sur cette fenêtre, vous pouvez utiliser
window.open('', 'NameOfTheOpenedWindow').focus();
window.focus()
est largement pris en charge - http://www.w3schools.com/jsref/met_win_focus.asp et semble fonctionner correctement à la fois dans Internet Explorer et Firefox, le problème devrait être dans votre code. J'ai créé un simple jsFiddle à tester - http://jsfiddle.net/Pharaon/uJy5t/
Si vous ne souhaitez pas conserver l'état d'un onglet précédemment ouvert, vous pouvez procéder comme suit:
var loadingTableWnd;
function openOrSwitchToWindow(url) {
if (loadingTableWnd != undefined) {
loadingTableWnd.close();
}
loadingTableWnd = window.open(url,'myFrame');
}