html ouvrir une URL sur la nouvelle cible et se concentrer
Je suis en train de corriger un site web.
Il ouvre une page d'aide dans une nouvelle fenêtre/onglet via <a href="..." target="help">
(aucun autre cadre a ce nom)
Cela fonctionne bien la première fois que l'ouverture d'une nouvelle fenêtre/onglet, pour l'aider.
Mais la suite, clique sur la fenêtre/onglet est chargé, mais qui reste caché.
J'ai essayé ceci:
<script>
function OpenAndFocusHelp() {
win=window.open('help/1000CH00017.htm','help');
win.focus();
}
</script>
<a href="help.html" target="help"
onclick="OpenAndFocusHelp()">Help</a>
Il ne fonctionne pas!
source d'informationauteur ctrl-alt-delor
Vous devez vous connecter pour publier un commentaire.
Je pense que cette fonctionnalité est un navigateur spécifique et vous ne pouvez pas définir le comportement pour la mise au point de nouveaux onglets ou fenêtres..
Il semble que les navigateurs ne vous permettent pas de
window.focus
une fenêtre existante. Ou au moins, il ne donnera pas de fenêtre qui a le focus. (IE9 sera fait clignoter l'onglet, mais la plupart des autres navigateurs simplement le charger, mais ne donnent pas d'indication que l'attention de l'utilisateur doit être attirée sur la nouvelle fenêtre.)Par conséquent, une solution qui se présente est de fermer la fenêtre en premier, puis l'ouvrir de nouveau immédiatement après. Par exemple, déclarer la fonction suivante:
Maintenant, vous pouvez écrire le code HTML comme ceci:
Depuis la fermeture de la fenêtre, de manière fiable donne le focus à l'enfant nouvellement créé de la fenêtre.
Cette solution utilise également le
window.popups
espace de noms, afin de renommer les usages que dans l'échantillon de javascript si vous avez une fonction nomméepopups
ou autrement entré en collision avec lui.Mise en garde: Cela ne fonctionne toujours pas après un post-retour. C'est parce que une fois que vous naviguez à partir de la page actuelle, il n'est plus le propriétaire de l'enfant de windows. Par conséquent, il ne peut plus les fermer. Cependant, il se borne à se dégrade à l'habitude (sans accent) comportement de l'utilisation de la
target
attribut.Testé Dans: Firefox 4, Chrome 11, c'est à dire 9
JsFiddle Démo: http://jsfiddle.net/aqxBy/7/
Vous pouvez avoir ce code à la place:
Puis l'appeler, avoir un tel lien:
Fonctionne très bien sur Chrome et IE, malheureusement Firefox de désactiver par défaut l'option de relancer windows dans le code afin
focus()
n'a pas d'effet dans le navigateur n'a pas pu trouver de travail autour de.Cas de Test est disponible ici: http://jsfiddle.net/yahavbr/eVxJX/
Voici un moyen à l'aide de jQuery et HTML5 avec secours pour JavaScript désactivé clients. Il permettra de recharger les pages sur chaque clic. Testé et fonctionne dans Firefox et Chrome.