Bonsoir,
J'utilise un objet (vlc) dans une page html et j'aimerai savoir s'il existe un moyen de récuperer, par une fonction javascript, l'evenement "click" sur cet objet ?
Merci pour vos réponses
Jérôme
Version imprimable
Bonsoir,
J'utilise un objet (vlc) dans une page html et j'aimerai savoir s'il existe un moyen de récuperer, par une fonction javascript, l'evenement "click" sur cet objet ?
Merci pour vos réponses
Jérôme
dans une balise object ?
oui,
Avec IE ou FF.
Pour FF cette page est pas mal : https://developer.mozilla.org/en/DOM/event
Mais soit je l'utilise mal, soit c'est pas prévu !?
Par exemple:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <object type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2" id="vlc1" width="1024" height="768" events="True" > <param name="ShowDisplay" value="True" /> <param name="Toolbar" value="True"> <param name="MRL" value="video.ext" /> <param name="volume" value="50" /> <param name="autoplay" value="false" /> <param name="loop" value="false" /> <param name="fullscreen" value="false" /> </object> function callback(evt) { // Do your processing here. Check evt.target for the target of the event. alert("EVT: " + evt.target); } function init() { var vlc = document.getElementById("vlc1"); vlc.addEventListener("event", callback, false); } <body onload="init();"> ......
Bonjour,
Qu'avez-vous précisé comme event ?
Code:vlc.addEventListener("event", callback, false);
as tu essayé de mettre un onclick sur la balise object ?
Ca a l'air de marcher :)))
J'ai reussi à déclencher un evenement :
mais ca ne marche que lorsque la page se charge :(
Pour répondre aux questions j'ai changé l'evenement en "click"
Et je pense qu'effectivement il faut mettre un onclick sur l'objet
Je me renseigne comment faire
J'ai modifié le la méthode :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function callback(evt) { // Do your processing here. Check evt.target for the target of the event. alert("EVT: " + evt.target); } function init() { var vlc = document.getElementById("vlc1"); vlc.addEventListener("click", callback, false); } </script> </head> <body onload="init();"> <script type="text/javascript"> var vlc = document.getElementById("vlc1"); vlc.playlist.playItem(vlc.playlist.add("rtsp://192.168.1.12:554/vsip2")); </script> </body> </html>
sinon il se peut que le click soit "absorbé" par le contenu de la balise object et n'arrive pas à la balise ...
à ce moment là il faudrait mettre un div au dessus de ta balise object et mettre le onclick sur ce div ..
En effet c'est plus compliqué que cela.
En fait l'evenement est pris en compte uniquement sur l'emplacement de l'objet, mais quand je clique sur l'objet apres qu'il soit chargé ca ne fonctionne plus.
J'essaie le div
C'est la merde,
Le div ne fonctionne pas non plus, je ne sais plus quoi faire !
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" /> <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <title>Test Event</title> <div onclick="alert('CLICK');" align="center"> <object type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2" id="vlc" width="512" height="384" events="True" > <param name="MRL" value="video.ext" /> <param name="volume" value="50" /> <param name="autoplay" value="false" /> <param name="loop" value="true" /> <param name="fullscreen" value="false" /> </object> </div> <script type="text/javascript"> function callback(evt) { // Do your processing here. Check evt.target for the target of the event. alert("EVT: " + evt.target + "\n" + evt); } function init() { var vlc1 = document.getElementById("vlc"); vlc1.addEventListener("click", callback, false); } </script> </head> <body onload="init();"> <script type="text/javascript"> var vlc01 = document.getElementById("vlc"); vlc01.playlist.playItem(vlc01.playlist.add("rtsp://192.168.1.12:554/vsip2")); </script> </body> </html>
La div est cliquable mais apparement l'objet passe au dessus de la div et ne prend pas son clic. :(
Non il faut ne faut pas englober la balise object dans le div ...
tin div doit être à part en position absolute et en z-index supérieur à celui de la balise object
Tu peux me donner un petit exemple ?
bon même avec un zindex ça posait souci j'ai du mettre un background et rendre le masque transparent
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Nouvelle page 2</title> <script type="text/javascript"> IsIE=document.all function init(){ var obj=document.getElementById('foo') Haut=obj.offsetHeight+50 Larg=obj.offsetWidth+50 X=obj.offsetLeft-25 Y=obj.offsetTop-25 var bar=document.getElementById('mask') bar.onclick=function(evt){ alert('bloqué'); evt=(evt)?evt:window.event; if (evt.stopPropagation) {evt.stopPropagation();} else{evt.cancelBubble = true;} } with(bar.style){ top=X+'px' left=Y+'px' height=Haut+"px" width=Larg+"px" position='absolute' zIndex='100' border="solid 1px red" backgroundColor='white'; } bar.style.opacity = 10; bar.style.filter = 'alpha(opacity=0)'; } </script> </head> <body onload="init()"> <span id='mask'></span> <object id="foo" style="height:200px;width:300px;z-index:10;" onclick="alert('raté')"> </object> </body> </html>
Merci pour cet exemple et pour tes réponses qui m'ont bien eclairé,
En fait des que VLC joue une video ca ne fonctionne plus. Je pense qu'il faut passer par les evenement de VLC.
Malheureusement il y a bug !
http://forum.videolan.org/viewtopic.php?f=16&t=77515
En fait je viens de contourner et ca a l'air de marcher !
en utilisant l'evenement focus.
Merci pour ton aide :ccool:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" /> <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <title>Layout 1</title> <object type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2" id="vlc1" width="320" height="260" events="True" > <param name="ShowDisplay" value="True" /> <param name="Toolbar" value="True"> <param name="MRL" value="video.ext" /> <param name="volume" value="50" /> <param name="autoplay" value="false" /> <param name="loop" value="false" /> <param name="fullscreen" value="false" /> </object> <object type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2" id="vlc2" width="320" height="260" events="True" > <param name="ShowDisplay" value="True" /> <param name="Toolbar" value="True"> <param name="MRL" value="video.ext" /> <param name="volume" value="50" /> <param name="autoplay" value="false" /> <param name="loop" value="false" /> <param name="fullscreen" value="false" /> </object> <script src="./ihm/vsm.js" type="text/javascript"></script> <script type="text/javascript"> function callback1(evt) { // Do your processing here. Check evt.target for the target of the event. alert("EVT: " + evt.currentTarget + "\n" + evt + "\n" + "1"); } function callback2(evt) { // Do your processing here. Check evt.target for the target of the event. alert("EVT: " + evt.currentTarget + "\n" + evt + "\n" + "2"); } function init() { var player1 = document.getElementById("vlc1"); player1.addEventListener("focus", callback1, false); var player2 = document.getElementById("vlc2"); player2.addEventListener("focus", callback2, false); } </script> </head> <body onload="init();"> <script type="text/javascript"> var vlc1 = document.getElementById("vlc1"); vlc1.playlist.playItem(vlc1.playlist.add("rtsp://192.168.1.12:554/vsip2")); var vlc2 = document.getElementById("vlc2"); vlc2.playlist.playItem(vlc2.playlist.add("skippy.avi")); </script> </body> </html>
oui j'allais te refiler ce lien là
http://www.developpez.net/forums/d93...ess-onkeydown/
j'ai testé le onfocus avec une video.
le lecteur accepte les evenements clavier mais les evenements souris sont interceptés par le div