11548 sujets

JavaScript, DOM et API Web HTML5

je suis totalement coincé par un bleme de javascript en cross-frame

j'ai fait une petite maquette tres simple, avec donc le script prévu pour appeler le plugin VLCplayer , et le lancement d'une video se fait depuis un lien dans la page comprenant tout simplement : onclick="vlc_controls.play('mavideo.avi')

dans une seule page , tout ça marche sans pb ; par contre je coince pour arriver à faire fonctionner en mode 2 frames ( une frame superieure ou doit s'afficher la video , et une frame inferieure ou il y a le blabla de la page principale et les divers liens des videos)

bref il me manque la bonne ligne de code pour faire ce cross-frame Smiley decu

apres quelques éssais en incluant top.frame , parent.frame, etc.. je n'arrive toujours à rien Smiley ohwell

ça se passe là : http://nozilla.free.fr/gabuzomeu.htm

je cherche à faire simplement ça: http://img10.imageshack.us/my.php?image=clipboard01bgw.jpg

(actuellement j'ai donc mis un lien de 'lancement manuel' d'une video dans la frame supérieure , en attendant de pouvoir faire ce javascript en cross-frame)
Modifié par iwata (31 Mar 2009 - 15:10)
De simples liens tels que
<a href="javascript:frc('http://nozilla.free.fr/trane.avi')" >
<img src="camera.gif" align="right"></a>
devraient convenir, en ajoutant le script suivant dans la même page.
<script type="text/javascript">
function frc(m){
if (typeof(parent.top.vlc_controls.play)=="function") {
	parent.top.vlc_controls.play(m);return}
else parent.window.frames[0].vlc_controls.play(m);
}
</script>

À la réflexion, il y a beaucoup plus simple avec des target sur les liens.
<a href="javascript:vlc_controls.play ('http://nozilla.free.fr/trane.avi')" target="top">

Mais, ce n'est pas une très bonne idée de reprendre le mot top pour désigner non seulement une frame mais encore une ancre en haut de page. C'est un objet de type window qui pointe sur la fenêtre la plus haute dans la hiérarchie du jeu des frames et cela pourrait être à l'origine de quelques unes de vos difficultés. Quant aux frames elles apparaissent vraiment obsolètes... Leur consacrer de longs développements critiques semble maintenant ressortir du tir sur ambulance.

Tous ces développements sur la toile apparaissent finalement bien éphémères...
Modifié par Julien de Prabere (01 Apr 2009 - 10:47)
déjà un tres-tres grand merci pour votre reponse , claire et précise Smiley smile

edit : la suite ci dessous (depuis) ...
Modifié par iwata (02 Apr 2009 - 01:06)
héhé , ça marche Smiley smile

<a href="ja-vascript:vlc_controls.play ('trane2.asf')" target="video"> video01</a>

j'avais juste eu un pb 'passager et incompréhensible' avec IExphlorer

GROS MERCI Smiley biggrin

NB: les fautes sont 'nécéssaires' à cause des farces de Alsacréations , ce 1er avril ...
Modifié par iwata (02 Apr 2009 - 01:05)
Afin d'éviter de pénibles tâches de construction de pages pour chaque vidéo, une solution pourrait consister à construire un fichier javascript constitué comme suit :
var chnVid="Titre 0|intro 0|suite 0|adresse 0|Titre 1|intro 1|... |adresse n";
var nbrChp=4;
La lecture de ce fichier au chargement de la page permettrait alors de construire le tableau des contenus avec une simple boucle sur un chnVid.split(/|/) et un switch sur la valeur de l'index modulo nbrChp (lorsque le reste de la division par 4 est nul on a le titre, lorsqu'il est egal à 1 on a une intro... etc. en remarquant qu'à chaque fois le quotient correpond au rang de la vidéo).

Resterait alors à insérer le tout, peut-être sans frames mais dans une div placée sous la fenêtre de visualisation (ave un overflow:scroll pour conserver l'ascenseur), à l'aide d'un bon vieux innerHTML, ajouter quelques fonctions puis assaisonner le tout, selon ses goûts, avec un peu de CSS.

Par la suite, différentes listes de vidéos et scripts correspondants pourraient même, avec un peu de php, être construit en ligne pour aboutir à une mini vidéothèque.
Modifié par Julien de Prabere (02 Apr 2009 - 10:28)
merci de ces nouveaux conseils Smiley smile

par contre, s'agissant de la gestion des videos , en fait il n'y a nul besoin de construire une page par video ; une seule page 'top' (ou'video') suffit avec le code qui appelle les 3 lib .js qui gerent l'acces à VLC qui attend le contenu "mymovie" ; lequel est donc lancé depuis les liens A HREF + 3 mots de javascript , pour chaque video, dans la/les page(s) ; ultra simple et concis

Qui plus est, ce contexte annule l'un des effets indésirables des frames , à savoir la navigation arriere , par la touche retour par ex, qui aurait pu faire 'sauter' la diffusion de la video ; là ça devient "beton" stable, ça ne peut se produire, puisque seule la validation d'une nouvelle video peut arreter celle en cours, et non la navigation avant/arriere

c'est , entre autre, cet aspect qui est tres dur à gérer : pouvoir laisser se jouer une video à l'écran , pendant que l'utilisateur se balade dans le site , fait autre chose ; par ex il va y avoir un petit module Ajax ( 2lignes!) pour laisser des commentaires (Gcomment) ; et certaines autres fonctionnalités auxquelles je pense , le tout donc sans perturber la fenetre video dont le focus restera béton

et c'est pas si simple à faire ! par ex, la partie video du site Arte** , par ailleurs site tres bien fait, utilise une usine à gaz ( une dizaine de gros scripts argh...) pour finalement ne pas arriver à tenir le meme pari ; on sent bien que toute l'interface de la partie video tend vers ça : permettre de lancer une video qui fait parfois 1h30 ou 52' , et que pendant ce temps le visiteur puisse continuer à fureter dans le site, notamment cette partie des videos

or, ça reste tres fragile (perte du focus), presque buggé , bref on perd trop 'facilement' (..) la video sans vraiment faire grand chose , en arriere plan dans la page du site

idem pour YouTube/DailyMotion , finalement ; bref , je suis ravi de cette simplicité qui se revele plus solide , et en plus sans les inconvenients habituels des frames

s'agissant d'autres solutions pour afficher des fenetres flottantes, notamment, je dirais que ça convient pour un pop-up pub ou une photo, un élément 'fixe' disons, sinon avec une video des que l'on scrolle dans la page ça devient cata' avec la fenetre qui tremblote quant à conserver sa place dans la mise en page, et plus grave le scroll affecte severement la qualité de la video affichée

je comprends que ce soit une sorte de réaction instinctive d'un developpeur web , mais qui pense (trop) vite disons à une solution techniquement 'possible' , mais hélas non fonctionnelle dans sa pratique ; c'est pas un reproche , loin de là , d'autant que mon cas de figure n'est finalement pas si courant

bien sur, si toutefois vous avez un lien vers un site qui fait celà 'bien', je le veux bien

re-gros-merci pour toutes ces idées , remarques et... bien sur la bonne solution à mon petit pb initial de cross-frame Smiley ravi

bavard, je suis; pardon, lol

**ps : http://www.arte.tv/fr/Videos-sur-ARTE-TV/2151166.html
c'est quand meme du tres, tres, beau boulot ; j'exagere un peu dans mes critiques ... plus parceque IE me vérole le cosmétique du menu de navigation dans la base ; FF est clean
Modifié par iwata (02 Apr 2009 - 13:09)