我有输入文件元素。
此元素id ="upload"的id。
当我在jsp上迭代相同的元素时,它与<视频>一起出现在我的jsp中好几次。
现在,我想显示视频后,我从我的系统在每个输入标签。
但是第一个输入元素工作得很好,但之后出现的其他输入文件标记就不行了。
有人能建议我如何通过Jquery或Javascript来解决这个问题吗?
“守则”如下:
在jsp中:
<div id='1'>
< input type="file" id="uploadBtn" name="video" placeholder="browse file" >
< video id="addVideo" controls autoplay >< / video>
< div id="v_message">< /div>
</div>
<div id='2'>
< input type="file" id="uploadBtn" name="video" placeholder="browse file" >
< video id="addVideo" controls autoplay >< / video>
< div id="v_message">< /div>
</div>
.......
.......
.......
<div id='n'>
< input type="file" id="uploadBtn" name="video" placeholder="browse file" >
< video id="addVideo" controls autoplay >< / video>
< div id="v_message">< /div>
</div>我在剧本中写道:
(function localFileVideoPlayerInit(win) {
var URL = win.URL || win.webkitURL,
displayMessage = (function displayMessageInit() {
var node = document.querySelector('#v_message');
return function displayMessage(message, isError) {
node.innerHTML = message;
node.className = isError ? 'error' : 'info';
};
}()),
playSelectedFile = function playSelectedFileInit(event) {
var file = this.files[0];
var type = file.type;
var videoNode = document.querySelector('#addVideo');
var canPlay = videoNode.canPlayType(type);
canPlay = (canPlay === '' ? 'no' : canPlay);
var message = 'Can play type "' + type + '": ' + canPlay;
var isError = canPlay === 'no';
displayMessage(message, isError);
if (isError) {
return;
}
var fileURL = URL.createObjectURL(file);
videoNode.src = fileURL;
},
inputNode = document.querySelector('#uploadBtn');
if (!URL) {
displayMessage('Your browser is not ' +
'<a href="http://caniuse.com/bloburls">supported</a>!', true);
return;
}
inputNode.addEventListener('change', playSelectedFile, false);
}( window));发布于 2015-10-15 09:02:29
我只是像下面这样解决这个问题:
这就是我想要的。这样,无论有多少输入文件与id= "addVideo“放在同一个jsp中,我都可以替换视频。而视频将在相应的视频标签中自动播放。
$(document).delegate("#addVideo","change",function showVideoFile(event){
var vid = $(this).parent().find("Video");
if (this.files && this.files[0]) {
var filerdr = new FileReader();
filerdr.onload = function(event) {
vid.attr('src', event.target.result);
},
filerdr.readAsDataURL(this.files[0]);
}
});https://stackoverflow.com/questions/33036620
复制相似问题