Onfocus ne marche pas !!!

txiki Messages postés 6819 Date d'inscription   Statut Contributeur Dernière intervention   -  
txiki Messages postés 6819 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut a tous,
Je ne comprend pas pourquoi, sur le site http://txiki.free.fr/quizz/page1/quizz_1.htm lorsque l'on se trompe sur la réponse et que l'on veut cliquer sur un autre lien, la première popup ne disparaît pas au bénéfice de la seconde (elle se ferme toute seule, mais l'autre s'ouvre en arrière plan, voir la barre des tâches).

Voici le fameux script ci-dessous:

<!--popup centree pour les vignettes du quizz...
function PopUp(mypage,myname,w,h,scroll)
{
var LeftPosition = (screen.width-w)/2;
var TopPosition = (screen.height-h)/2;
var settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+', scrollbars=no,resizable=no'
window.open(mypage,myname,settings)
popquizz.focus();
}
//-->

Merci de m'éclairer sur la ligne (où peut etre bien sur tout le script d'ailleurs... j'ai foiré quelque parts mais oùùùùù !!!!!

http://abarka.free.fr
Un adulte assis voit plus loin qu'un jeune debout.

3 réponses

Marden Messages postés 1075 Statut Membre 210
 
A mon avis, l'objet (instance) auquel tu prétends donner le focus ne correspond pas à la fenêtre que tu ouvres.
Je ne connais pas en détail les mécanismes, mais je conseillerais d'essayer :
popquizz = window.open( ..... )
popquizz.focus()

[l'objet "popquizz" existe quelque part, sinon tu aurais un message de type "object inexistant"]
Sinon, si l'objet est celui fourni par l'argument "myname", il faut passer par une fonction d'évaluation de l'objet :
eval(myname+".focus()") ;
0
txiki Messages postés 6819 Date d'inscription   Statut Contributeur Dernière intervention   524
 
Salut Marden et merci pour ton aide,
Ce coup-ci, ça fonctionne mais pas pour tous les liens, en particulier le dernier en bas à droite. La popup reste encore en arrière plan ??? Pourquoi ça marche pour certains et pas pour d'autres ? Ya un truc qui m'échappe là dedans. Je ne connais rien au javascript pour pouvoir analyser correctement le script.. Voici ce que j'ai maintenant:
<!--popup centree pour les vignettes du quizz... 
function PopUp(mypage,myname,w,h,scroll)
{
var LeftPosition = (screen.width-w)/2;
var TopPosition = (screen.height-h)/2;
var settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+', scrollbars=no,resizable=no' 
popquizz = window.open(mypage,myname,settings)
popquizz.focus(); 
} 
//-->


En tous cas, je te remercie infiniment pour ton aide si rapide. ;-)

http://abarka.free.fr
Un adulte assis voit plus loin qu'un jeune debout.
0
txiki Messages postés 6819 Date d'inscription   Statut Contributeur Dernière intervention   524
 
Au fait ! il manque pas un point virgule "; " après settings) ?

http://abarka.free.fr
Un adulte assis voit plus loin qu'un jeune debout.
0
Marden Messages postés 1075 Statut Membre 210
 
Salut txiki,

Je vais aller voir, et essayer de noter ce qui est différent d'un cas à l'autre. Je n'ai jamais utilisé.

Pour le ";", il n'est pas obligatoire en fin de ligne (qui est matérialisé dans le fichier, mais non visible sous éditeur, type NotePad, alors qu'avec un traitment de texte, on pourrait le rendre visible, en option). La "fin de ligne" est un délimiteur de fin d'instruction, le ";" est obligatoire si l'on veut mettre plusieurs instructions sur la même ligne.
0
Marden Messages postés 1075 Statut Membre 210
 
La version actuelle de la fonction "PopUp" est celle indiquée au début du message.
Le comportement est le même pour tous les cas (avec message éphémère "popquizz, objet non défini"), logique jusqu'à preuve du contraire.
0
txiki Messages postés 6819 Date d'inscription   Statut Contributeur Dernière intervention   524
 
Salut Marden et a tous les autres,
Voici ma correction, (qui fonctionne) mais si ça peut aider d'autres gens...

script pour popup centree et en premier plan:

<!--popup centree pour les vignettes du quizz... 
function PopUp(mypage,myname,w,h,scroll)
{
var LeftPosition = (screen.width-w)/2;
var TopPosition = (screen.height-h)/2;
var settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+', scrollbars=no,resizable=no' 
//NE PAS oublier POPQUIZZ = window.open(mypage,myname,settings)
ce qui donne:
popquizz = window.open(mypage,myname,settings)
popquizz.focus(); 
} 
//-->

Merci encore a toi et a + ;-)).
Tu peux t'en rendre compte par toi même sur abarka, section "QUIZZ".


http://abarka.free.fr
Un adulte assis voit plus loin qu'un jeune debout.
0