bonjour à tous,
je tente d'utiliser les active'x pour
treeview et imagelist en j[ava]script
et 2 questions pour commencer :
_ imagelist : je n'arrive pas à mettre
des images ( click droit, propriétés .. )
ou plus exactement elles "disparaissent"
dès le lancement du script.
( ce qui, bien entendu, fonctionne sans
souci sous VB par exemple )
_ treeview : comment dire que je veux
exécuter "telle fonction" lorsque l'on
clique sur un noud par exemple ?
( en VB par exemple, il suffirait de faire un
Sub TreeView1_NodeClick(ByVal Noeud As Node) )
merci d'avance.
merci de vous intéresser à ce problème. ND=TV.Nodes.Add(null,null , "exemple", "exemple",1) provoque une erreur car ImageList (IL) associée n'est pas initialisée,
oui, bien que ne comprennant rien au VbScript ou aux ActiveX le pb avait été capté ;-)
on peut charger les images avec IL.ListImages.Add(1,"un",LoadPicture("fichier")) ( ou en paramétrant les propriétés avec un click droit sur ce composant ) et en javascript pas de loadpicture...
? en JS, ce que je sais faire est
trucBidule = new Image(); trucBidule.src = 'machin_chose.jpg';
et pour une liste (qui devrait alors se charger dans le cache) :
LI = new Array(); LI[0] = new Image(); LI[0].src='truc_0.jpg'; LI[1] = new Image(); LI[1].src='truc_1.jpg'; etc ...
ou : MI='truc_0.jpg,truc_1.jpg,machin0.gif'; MI = MI.split(','); LI = new Array(); for(var i=0;i<MI.length;) { LI[i] = new Image(); LI[i].src = MI[i]; }
ou (à adapter)
<html> <script type="text/javascript"><!--
function creeListImages(chemin,nombre) { LI = new Array(); for(var i=0;i<nombre;i++) { LI[i] = new Image(); LI[i].src=chemin+'/truc_'+i+'.jpg'; } }
function ajouteImage(chemin){ var ind = LI.length; LI[ind] = new Image(); LI[ind].src = LI[ind].src=chemin+'/truc_'+ind+'.jpg'; }
function afficheImage(index) { // on clone le code html de réf d'une image // on lui attribue la source de l'image à afficher // on ajoute en fin d'affichage la nouvelle image var newImage = document.getElementById('readroot').cloneNode(true); newImage.id = 'NI_'+index; newImage.src = LI[index].src; newImage.style.display = 'block'; var insertHere = document.getElementById('writeroot'); insertHere.parentNode.insertBefore(newImage,insertHere); } // --></script> <img id="readroot" style="display:none" src="vide.gif"> <p><a href="#" onclick="creeListImages('../photos',5);"> Creer la liste d'images</a> <a href="#" onclick="for(var i=0;i<LI.length;i++) afficheImage(i);">Afficher la liste d'images</a> <p><a href="#" onclick=" ajouteImage('../photos');afficheImage(LI.length);"> Ajouter-voir une image de plus</a> il doit etre possible ici de mettre un input file pour faire charger-afficher une image du DD <span id="writeroot"></span> </html>
mais on doit pouvoir faire plus simple, directement (ou presque) en JS.
merci de vous intéresser à ce problème.
ND=TV.Nodes.Add(null,null , "exemple", "exemple",1)
provoque une erreur car ImageList (IL) associée
n'est pas initialisée,
oui, bien que ne comprennant rien au VbScript ou aux ActiveX
le pb avait été capté ;-)
on peut charger les images avec
IL.ListImages.Add(1,"un",LoadPicture("fichier"))
( ou en paramétrant les propriétés avec
un click droit sur ce composant )
et en javascript pas de loadpicture...
?
en JS, ce que je sais faire est
trucBidule = new Image();
trucBidule.src = 'machin_chose.jpg';
et pour une liste
(qui devrait alors se charger dans le cache) :
LI = new Array();
LI[0] = new Image(); LI[0].src='truc_0.jpg';
LI[1] = new Image(); LI[1].src='truc_1.jpg';
etc ...
ou :
MI='truc_0.jpg,truc_1.jpg,machin0.gif';
MI = MI.split(',');
LI = new Array();
for(var i=0;i<MI.length;) {
LI[i] = new Image();
LI[i].src = MI[i];
}
ou (à adapter)
<html>
<script type="text/javascript"><!--
function creeListImages(chemin,nombre) {
LI = new Array();
for(var i=0;i<nombre;i++) {
LI[i] = new Image();
LI[i].src=chemin+'/truc_'+i+'.jpg';
}
}
function ajouteImage(chemin){
var ind = LI.length;
LI[ind] = new Image();
LI[ind].src = LI[ind].src=chemin+'/truc_'+ind+'.jpg';
}
function afficheImage(index) {
// on clone le code html de réf d'une image
// on lui attribue la source de l'image à afficher
// on ajoute en fin d'affichage la nouvelle image
var newImage = document.getElementById('readroot').cloneNode(true);
newImage.id = 'NI_'+index;
newImage.src = LI[index].src;
newImage.style.display = 'block';
var insertHere = document.getElementById('writeroot');
insertHere.parentNode.insertBefore(newImage,insertHere);
}
// --></script>
<img id="readroot" style="display:none" src="vide.gif">
<p><a href="#" onclick="creeListImages('../photos',5);">
Creer la liste d'images</a>
<a href="#" onclick="for(var i=0;i<LI.length;i++)
afficheImage(i);">Afficher la liste d'images</a>
<p><a href="#" onclick="
ajouteImage('../photos');afficheImage(LI.length);">
Ajouter-voir une image de plus</a>
il doit etre possible ici de mettre un input file
pour faire charger-afficher une image du DD
<span id="writeroot"></span>
</html>
mais on doit pouvoir faire
plus simple, directement (ou presque) en JS.
merci de vous intéresser à ce problème. ND=TV.Nodes.Add(null,null , "exemple", "exemple",1) provoque une erreur car ImageList (IL) associée n'est pas initialisée,
oui, bien que ne comprennant rien au VbScript ou aux ActiveX le pb avait été capté ;-)
on peut charger les images avec IL.ListImages.Add(1,"un",LoadPicture("fichier")) ( ou en paramétrant les propriétés avec un click droit sur ce composant ) et en javascript pas de loadpicture...
? en JS, ce que je sais faire est
trucBidule = new Image(); trucBidule.src = 'machin_chose.jpg';
et pour une liste (qui devrait alors se charger dans le cache) :
LI = new Array(); LI[0] = new Image(); LI[0].src='truc_0.jpg'; LI[1] = new Image(); LI[1].src='truc_1.jpg'; etc ...
ou : MI='truc_0.jpg,truc_1.jpg,machin0.gif'; MI = MI.split(','); LI = new Array(); for(var i=0;i<MI.length;) { LI[i] = new Image(); LI[i].src = MI[i]; }
ou (à adapter)
<html> <script type="text/javascript"><!--
function creeListImages(chemin,nombre) { LI = new Array(); for(var i=0;i<nombre;i++) { LI[i] = new Image(); LI[i].src=chemin+'/truc_'+i+'.jpg'; } }
function ajouteImage(chemin){ var ind = LI.length; LI[ind] = new Image(); LI[ind].src = LI[ind].src=chemin+'/truc_'+ind+'.jpg'; }
function afficheImage(index) { // on clone le code html de réf d'une image // on lui attribue la source de l'image à afficher // on ajoute en fin d'affichage la nouvelle image var newImage = document.getElementById('readroot').cloneNode(true); newImage.id = 'NI_'+index; newImage.src = LI[index].src; newImage.style.display = 'block'; var insertHere = document.getElementById('writeroot'); insertHere.parentNode.insertBefore(newImage,insertHere); } // --></script> <img id="readroot" style="display:none" src="vide.gif"> <p><a href="#" onclick="creeListImages('../photos',5);"> Creer la liste d'images</a> <a href="#" onclick="for(var i=0;i<LI.length;i++) afficheImage(i);">Afficher la liste d'images</a> <p><a href="#" onclick=" ajouteImage('../photos');afficheImage(LI.length);"> Ajouter-voir une image de plus</a> il doit etre possible ici de mettre un input file pour faire charger-afficher une image du DD <span id="writeroot"></span> </html>
mais on doit pouvoir faire plus simple, directement (ou presque) en JS.
j'ai essayé : var i=new Image(); i.src="SiteEnt.gif"; IL.ListImages.Add(1,"un",i); => image non valide ... comme mes autres tentatives. "on" vient bien y arriver, non ? merci de m'aider...
j'ai essayé :
var i=new Image();
i.src="SiteEnt.gif";
IL.ListImages.Add(1,"un",i);
=> image non valide ...
comme mes autres tentatives.
"on" vient bien y arriver, non ?
merci de m'aider...
j'ai essayé : var i=new Image(); i.src="SiteEnt.gif"; IL.ListImages.Add(1,"un",i); => image non valide ... comme mes autres tentatives. "on" vient bien y arriver, non ? merci de m'aider...
ASM
j'ai essayé : var i=new Image(); i.src="SiteEnt.gif"; IL.ListImages.Add(1,"un",i); => image non valide ... comme mes autres tentatives. "on" vient bien y arriver, non ? merci de m'aider...
La déclaration du chemin (la source) de l'image via JS ne suffit pas à ce qu'elle soit instantanément dans le cache faut lui laisser le temps de s charger peut-être ?
et ça :
function addJS() {IL.ListImages.Add(1,"un",i);} var i=new Image(); i.onload = addJS; i.src="SiteEnt.gif";
que donne-ce ?
mais là-dedans, il ne me semble pas que Add(trucbidule) soit une fonction déclarée par JS ? !
et ne me semble pas qu'on appelle une image par son nom on s'occupe plus volontier de sa source
j'ai essayé :
var i=new Image();
i.src="SiteEnt.gif";
IL.ListImages.Add(1,"un",i);
=> image non valide ...
comme mes autres tentatives.
"on" vient bien y arriver, non ?
merci de m'aider...
La déclaration du chemin (la source) de l'image via JS
ne suffit pas à ce qu'elle soit instantanément dans le cache
faut lui laisser le temps de s charger peut-être ?
et ça :
function addJS() {IL.ListImages.Add(1,"un",i);}
var i=new Image();
i.onload = addJS;
i.src="SiteEnt.gif";
que donne-ce ?
mais là-dedans, il ne me semble pas que Add(trucbidule)
soit une fonction déclarée par JS ? !
et ne me semble pas qu'on appelle une image par son nom
on s'occupe plus volontier de sa source
j'ai essayé : var i=new Image(); i.src="SiteEnt.gif"; IL.ListImages.Add(1,"un",i); => image non valide ... comme mes autres tentatives. "on" vient bien y arriver, non ? merci de m'aider...
La déclaration du chemin (la source) de l'image via JS ne suffit pas à ce qu'elle soit instantanément dans le cache faut lui laisser le temps de s charger peut-être ?
et ça :
function addJS() {IL.ListImages.Add(1,"un",i);} var i=new Image(); i.onload = addJS; i.src="SiteEnt.gif";
que donne-ce ?
mais là-dedans, il ne me semble pas que Add(trucbidule) soit une fonction déclarée par JS ? !
et ne me semble pas qu'on appelle une image par son nom on s'occupe plus volontier de sa source
pas encore ça ... (j'avais d'ailleurs essayé en mettant un alert(); pour contrôler ) j'ai essayé : _IL.listimages.Add(1,"un","SiteEnt.gif"); _IL.listimages.Add(1,"un",name d'un img avec src="SiteEnt.gif"); ou input type=image _IL.listimages.Add(1,"un",name d'un img.src); _var i=new Image(); i.src="SiteEnt.gif"; IL.listimages.Add(1,"un",i); ( peut-être d'autres encore ? )
mais là-dedans, il ne me semble pas que Add(trucbidule) soit une fonction déclarée par JS ? ! effectivement, c'est une méthode de ImageList.
dur, dur ... on manque cruellement de doc ? toutes les pistes sont les biens venues ... merci.
pas encore ça ...
(j'avais d'ailleurs essayé en mettant
un alert(); pour contrôler )
j'ai essayé :
_IL.listimages.Add(1,"un","SiteEnt.gif");
_IL.listimages.Add(1,"un",name d'un img avec src="SiteEnt.gif"); ou input
type=image
_IL.listimages.Add(1,"un",name d'un img.src);
_var i=new Image(); i.src="SiteEnt.gif"; IL.listimages.Add(1,"un",i);
( peut-être d'autres encore ? )
mais là-dedans, il ne me semble pas que Add(trucbidule)
soit une fonction déclarée par JS ? !
effectivement, c'est une méthode de ImageList.
dur, dur ... on manque cruellement de doc ?
toutes les pistes sont les biens venues ... merci.
pas encore ça ... (j'avais d'ailleurs essayé en mettant un alert(); pour contrôler ) j'ai essayé : _IL.listimages.Add(1,"un","SiteEnt.gif"); _IL.listimages.Add(1,"un",name d'un img avec src="SiteEnt.gif"); ou input type=image _IL.listimages.Add(1,"un",name d'un img.src); _var i=new Image(); i.src="SiteEnt.gif"; IL.listimages.Add(1,"un",i); ( peut-être d'autres encore ? )
mais là-dedans, il ne me semble pas que Add(trucbidule) soit une fonction déclarée par JS ? ! effectivement, c'est une méthode de ImageList.
dur, dur ... on manque cruellement de doc ? toutes les pistes sont les biens venues ... merci.
ASM
mais là-dedans, il ne me semble pas que Add(trucbidule) soit une fonction déclarée par JS ? ! effectivement, c'est une méthode de ImageList.
Il serait donc *normal* que le JavaScript soit perdu dans l'interprétation de cette fonction, non? A mons que du JS spécifique à l'ActiveX ne soit prévu dans le moteur ActiveX ?
Ne manquerait-il pas tt simplement qque part un param d'activation de la liste ?
dur, dur ... on manque cruellement de doc ?
Que dit la doc M$ sur le sujet ? http://www.microsoft.com/com/tech/ActiveX.asp et mieux : http://msdn.microsoft.com/default.aspx ou d'autres sites ? http://search.msn.com/results.aspx?FORM=MSNH&q¬tive-X
un truc tout fait à 40$ ? http://www.active-x.com/download.asp?id'49
toutes les pistes sont les biens venues ... merci.
google est ton ami ;-))
ici ? "the list of images may not be displayed in the Images List window." http://support.microsoft.com/default.aspx?scid=kb;en-us;230264 sinon : http://search.microsoft.com/search/results.aspx?qu=images+list&View=msdn&st=b&c=3&s=1&swc=3
Perso, je ne puis plus : tous les activeX (réactifs) que j'ai essayé de voir ne s'affichent même pas (IE5 vieux Mac, ActiveX et scripts activés) (de plus mon IE cale sur une erreur JS sur le site M$)
mais là-dedans, il ne me semble pas que Add(trucbidule)
soit une fonction déclarée par JS ? !
effectivement, c'est une méthode de ImageList.
Il serait donc *normal* que le JavaScript soit
perdu dans l'interprétation de cette fonction, non?
A mons que du JS spécifique à l'ActiveX ne soit prévu
dans le moteur ActiveX ?
Ne manquerait-il pas tt simplement qque part un param
d'activation de la liste ?
dur, dur ... on manque cruellement de doc ?
Que dit la doc M$ sur le sujet ?
http://www.microsoft.com/com/tech/ActiveX.asp
et mieux :
http://msdn.microsoft.com/default.aspx
ou d'autres sites ?
http://search.msn.com/results.aspx?FORM=MSNH&q¬tive-X
un truc tout fait à 40$ ?
http://www.active-x.com/download.asp?id'49
toutes les pistes sont les biens venues ... merci.
google est ton ami ;-))
ici ?
"the list of images may not be displayed in the Images List window."
http://support.microsoft.com/default.aspx?scid=kb;en-us;230264
sinon :
http://search.microsoft.com/search/results.aspx?qu=images+list&View=msdn&st=b&c=3&s=1&swc=3
Perso, je ne puis plus :
tous les activeX (réactifs) que j'ai essayé de voir
ne s'affichent même pas (IE5 vieux Mac, ActiveX et scripts activés)
(de plus mon IE cale sur une erreur JS sur le site M$)
mais là-dedans, il ne me semble pas que Add(trucbidule) soit une fonction déclarée par JS ? ! effectivement, c'est une méthode de ImageList.
Il serait donc *normal* que le JavaScript soit perdu dans l'interprétation de cette fonction, non? A mons que du JS spécifique à l'ActiveX ne soit prévu dans le moteur ActiveX ?
Ne manquerait-il pas tt simplement qque part un param d'activation de la liste ?
dur, dur ... on manque cruellement de doc ?
Que dit la doc M$ sur le sujet ? http://www.microsoft.com/com/tech/ActiveX.asp et mieux : http://msdn.microsoft.com/default.aspx ou d'autres sites ? http://search.msn.com/results.aspx?FORM=MSNH&q¬tive-X
un truc tout fait à 40$ ? http://www.active-x.com/download.asp?id'49
toutes les pistes sont les biens venues ... merci.
google est ton ami ;-))
ici ? "the list of images may not be displayed in the Images List window." http://support.microsoft.com/default.aspx?scid=kb;en-us;230264 sinon : http://search.microsoft.com/search/results.aspx?qu=images+list&View=msdn&st=b&c=3&s=1&swc=3
Perso, je ne puis plus : tous les activeX (réactifs) que j'ai essayé de voir ne s'affichent même pas (IE5 vieux Mac, ActiveX et scripts activés) (de plus mon IE cale sur une erreur JS sur le site M$)
Stéphane MORIAUX tapotait de ses petits doigts musclés :
Il serait donc *normal* que le JavaScript soit perdu dans l'interprétation de cette fonction en fait il faudrait lui passer le résultat d'un fonction
qui "chargerait" une image ( loadpicture en vbscript )
Ne manquerait-il pas tt simplement qque part un param d'activation de la liste ? à part <PARAM NAME="ImageList" VALUE="IL">
dans le treeview, je ne vois rien d'autre, y compris dans d'autres langages. je vais voir toutes les adresses données, google ... pas très doué ( là non plus ) pour la recherche et j'espère trouver en français, car en anglais ( là aussi ) je suis nul ... quand même dommage d'être arrêté par un "détail" comme celui-là. merci en tout cas de votre patience, de votre aide, et de vos conseils, si je trouve je le dirais. n'hésitez pas pour d'autres pistes, suggestions ... @+
Stéphane MORIAUX tapotait de
ses petits doigts musclés :
Il serait donc *normal* que le JavaScript soit
perdu dans l'interprétation de cette fonction
en fait il faudrait lui passer le résultat d'un fonction
qui "chargerait" une image ( loadpicture en vbscript )
Ne manquerait-il pas tt simplement qque part un param
d'activation de la liste ?
à part <PARAM NAME="ImageList" VALUE="IL">
dans le treeview, je ne vois rien d'autre, y compris
dans d'autres langages.
je vais voir toutes les adresses données, google ...
pas très doué ( là non plus ) pour la recherche et
j'espère trouver en français, car en anglais
( là aussi ) je suis nul ...
quand même dommage d'être arrêté par un "détail"
comme celui-là.
merci en tout cas de votre patience, de votre aide,
et de vos conseils, si je trouve je le dirais.
n'hésitez pas pour d'autres pistes, suggestions ...
@+
Stéphane MORIAUX tapotait de ses petits doigts musclés :
Il serait donc *normal* que le JavaScript soit perdu dans l'interprétation de cette fonction en fait il faudrait lui passer le résultat d'un fonction
qui "chargerait" une image ( loadpicture en vbscript )
Ne manquerait-il pas tt simplement qque part un param d'activation de la liste ? à part <PARAM NAME="ImageList" VALUE="IL">
dans le treeview, je ne vois rien d'autre, y compris dans d'autres langages. je vais voir toutes les adresses données, google ... pas très doué ( là non plus ) pour la recherche et j'espère trouver en français, car en anglais ( là aussi ) je suis nul ... quand même dommage d'être arrêté par un "détail" comme celui-là. merci en tout cas de votre patience, de votre aide, et de vos conseils, si je trouve je le dirais. n'hésitez pas pour d'autres pistes, suggestions ... @+
ASM
en fait il faudrait lui passer le résultat d'un fonction qui "chargerait" une image ( loadpicture en vbscript )
donc ? - passer l'info à ActiveX (pas de mon ressort) ? - tout faire en JavaScript ?
sinon en JS (rappel) : lancer une fonction dès qu'une nouvelle image désignée est chargée :
<script type="text/javascript"><!-- function test() { window.open(i.src); alert('image neuve = '+i.src); } function nouvImage() { var urlImage = (document.getElementbyId)? document.getElementbyId('fichier').value : document.forms['formImages'].fichier.value; i=new Image(); i.onload = test; i.src=urlImage; } // --></script> <form name=formImages> Choisir une image du DD : <input type=file id=fichier name=fichier> <p>Voir cette image : <input type=button value=GO onclick="nouvImage();"> </form>
je vais voir toutes les adresses données, google ...
les urls données sortent pour le principal de M$ (us)
pas très doué ( là non plus ) pour la recherche et j'espère trouver en français, car en anglais ( là aussi ) je suis nul ...
donc en français (grace à google.fr pages francophones) ceci ? http://search.microsoft.com/search/results.aspx?st=a&qu¬tiveX+images+liste&view=fr-fr