External.menuArguments et l'evenement onmouseover sous IE
xaminou
Messages postés10Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention22 août 2007
-
22 août 2007 à 09:26
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
23 août 2007 à 10:53
Bonjour,
Je viens solliciter votre aide à propos des evenements "onmouseover" et "onmouseout", mon probleme est simple je n'arrive pas à partir d'une page "enfant" (ouverte grace à un clique droit sur la page mere http://msdn2.microsoft.com/en-us/library/aa753589.aspx) déclencher une fonction spécifique lors d'un mouseover sur un input de type "text" par exemple.
Voilà mon code:
<HTML>
<head>
<SCRIPT LANGUAGE="JavaScript">
var doc = external.menuArguments.parent.document;
function Test(el) {
alert(this.name);
}
function initB() {
var listobj = doc.getElementsByTagName('INPUT');
for(j=0;j != listobj.length;j++){
listobj[j].setAttribute("onmouseover",Test);
listobj[j].setAttribute("onmouseout",Test);
}
}
</SCRIPT>
</head>
</HTML>
On passant le curseur de la sourie sur la page mére la fonction "Test" n'est pas déclenché. En plus j'ai testé le même code en ouvrant directement la page html sous IE et en utilisant :
var doc = document;
au lieu de var doc = external.menuArguments.parent.document;
et ça marche parfaitement.
any help? thanx...
A voir également:
External.menuArguments et l'evenement onmouseover sous IE
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2007 à 09:48
bonjour,
tu n'est pas en train d'essayer de faire une "extension d'Internet Explorer" ?
parce que
external.menuArguments...
ça me semble typique.
si oui : je me bat depuis 3 jours pour faire la même chose !
j'ai trouvé un paliatif
avec external.menuArguments.event.srcElement.parentElement.innerHTML
mais ce n'est qu'un paliatif ( qui ne répond pas à tous mes besoins ! )
si non, tu peux expliquer dans quel contexte tu utilises ?
ensuite, je ne vois pas l'intéret d'utiliser setAttribute, même si je suis sur que ca vient pas de cela.
var listobj = window.opener.document.getElementsByTagName("input");for(var j 0, length listobj.length; j < length; j++){
listobj[j].onmouseover = Test;
listobj[j].onmouseout = Test;
}
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2007 à 09:59
opener c'est pour une page ouverte avec window.open.
pour une page ouverte avec shomodaldialog ( exclusif IE ), on lui passe
les paramètres comme j'ai indiqué et on les utilise avec menuArguments.
<hr />
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2007 à 10:03
dieu me tripote ! que d'erreurs de ma part ! ( on dira d'inattention !! )
il fallait lire : dialogArguments avec ShowModalDialog !
external.menuArguments... je n'ai vu que dans les "extensions IE"
<hr />
xaminou
Messages postés10Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention22 août 2007 22 août 2007 à 10:05
Oui, en effet j'essaye de faire une "extension pour Internet explorer". je lance un script js à partir du menu contextuel d'internet explorer d'où le fait d'utiliser l'attribut menuArguments de l'objet external (au lieu de window.opener.document).
je voudrais que mon script attache tout simplement une fonction que j'ai appelé infobulle (qui affichera les propriétés de l'element survolé) sur tout les elements de type input, select..etc de la page initale. j'ai essayé tt les méthodes possibles et compatibles IE pour surcharger l'evenement onmouseover tels que:
setAttribute("onmouseover",..), .onmouseover = ... , addEvent ..etc.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2007 à 10:21
>>
e voudrais que mon script attache tout
simplement une fonction que j'ai appelé infobulle
>>(qui affichera
les propriétés de l'element survolé) sur tout les elements de type
input, select..etc de la page initale.
tu peux faire ça avec IE7Pro... ( c'est dans les exemples et les script utilisateurs
regarde donc ShowPasswordOnMouseOver.ieuser.js )
pas la même chose que les extensions, mais ça peut le faire...
<hr />
Cordialement Bul [mon Site] [M'écrire]<hr /> En général, c'est absurde de généraliser.
xaminou
Messages postés10Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention22 août 2007 22 août 2007 à 10:25
Je me dis peut être que c'est normal que les fonctions ne se déclenchent pas, car elles sont tt simplement déclarées dans un fichier externe. non?
Ma question maintenant est comment fait on pour déclencher une fonction déclarer dans un popup à partir de la page mére? peut être que ça nous mettra la puce à l'oreille.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2007 à 10:37
dans un pop-up, ça c'est assez simple !
mais dans une extension IE, d'un manière plus générale :
je ne sais pas comment faire communiquer l'extension
et la page, sauf ce que j'ai montré.
<hr />
xaminou
Messages postés10Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention22 août 2007 22 août 2007 à 10:46
je suis d'accord avec toi bultez.
Alors pourquoi IE ne déclenche pas l'evenement onmouseover attaché par notre extension? ça fait un moment que je me bat pour que ça marche mais sans resultat :'( ! chui au bord de la déprime.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2007 à 11:06
je ne sais pas. ;-((
tout ce que je sais, c'est qu'on doit faire une énorme bétise. ;-))
en attendant, pour toi : innerHTML ou IE7Pro, ça doit le faire.
<hr />
Cordialement Bul [mon Site] [M'écrire]<hr /> En général, c'est absurde de généraliser.
xaminou
Messages postés10Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention22 août 2007 22 août 2007 à 14:40
Bon, je reviens pour vous dire que j'ai détourné le probléme en injectant un fichier js dans la page intiale.cela me permet de ne plus utiliser l'objet "external" et de travailler directement avec l'objet window.document et là tt marche nikel !! n'hésitez pas si vous avez besoin d'aide et je vous remercie pour votre attention !!
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 22 août 2007 à 14:50
ah ben oui... mais là, le problème est totalement différent.
il faut inclure le script dans toutes les pages où on veut cette fonctionnalité !
du coup, c'est un peu plus simple.
<hr />
Cordialement Bul [mon Site] [M'écrire]
<hr />
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 23 août 2007 à 10:53
certes xaminou.
ce n'était pas une critique, et si cela correspond à ce que tu veux : nickel.
on est obligé d'inclure le javascript ( qu'elle que soit la manière ),
donc uniquement sur vos sources.
IE7Pro et/ou une "extension de IE" n'ont pas le même but :
c'est "ajouter du javascript au navigateur", qui va s'exécuter,
même sur des pages qui ne vous appartiennent pas, sans
toucher aux sources de ces pages.