Bonjour à tous,
J'insère par javascript des vidéos dans un article, mais avant l'insertion j'aimerai vérifier l'existence de la ressource.
J'utilise pour cela : XMLHttpRequest
mais le readyState est toujours = 1 et non 4 alors que le fichier existe et sur le même domaine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function addSourceToVideo(element, src, type) { var source = document.createElement('source'); source.src = src; source.type = type; var request = new XMLHttpRequest(); request.open('GET', src, true); request.send(null); alert('src' + src + "readystate " + request.readyState + " - "+ request.status); if (request.readyState == 4 && request.status == 200) { //element.appendChild(source); } } var src_video = document.getElementById("videourl").value; addSourceToVideo(video, src_video+'.ogv', 'video/ogg');
Solution:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 function addSourceToVideo(element, src, type) { var source = document.createElement('source'); source.src = src; source.type = type; var req = new XMLHttpRequest(); req.open('GET', src, true); req.onreadystatechange = function (aEvt) { //dump(src + ' '+ req.responseText+ ' | req.readyState->'+ req.readyState + ' | req.status ->'+ req.status); if (req.readyState == 4) { if((req.status == 200)||(req.status == 206)){ element.appendChild(source); presence_source = true; } else { alert("Erreur pendant le chargement de la page.\n"); } } }; req.send(null); } var src_video = document.getElementById("videourl").value; addSourceToVideo(video, src_video+'.ogv', 'video/ogg'); addSourceToVideo(video, src_video+'.mp4', 'video/mp4'); addSourceToVideo(video, src_video+'.webm', 'video/webm');
Partager