팝업창에서 파일을 선택하여 부모창으로 opener함수를 활용하여 input file의 저장된
파일 절대주소를 보낼때 브라우저 보안상 Fakepath라고 뜨는데
input hiden에 넣어서 보내면된다. (해보지는않음)
'WEB > HTML5' 카테고리의 다른 글
웹에서 엑셀 다루기 (0) | 2015.10.01 |
---|
팝업창에서 파일을 선택하여 부모창으로 opener함수를 활용하여 input file의 저장된
파일 절대주소를 보낼때 브라우저 보안상 Fakepath라고 뜨는데
input hiden에 넣어서 보내면된다. (해보지는않음)
웹에서 엑셀 다루기 (0) | 2015.10.01 |
---|
#목표
검색어를 검색하면 바로바로 리스트가 바뀌어서 보여진다.
해당 리스트의 검색창에 검색어를 입력하면 리스트에 해당 검색어의 아이템만 보여진다.
#구현
javascript indexof() 함수를 통해서 해당 검색어가 있으면 엘리먼츠를 display = "block" 으로 하고 없을경우 dispaly = "none"으로 한다.
이렇게 구현할경우 검색 필터가 순서대로인 단어만 검색해서 한글의경우 완성형 글자가 아닌 글자를 타이핑하고있을때 검색결과창에 해당 검색결과가 나오지않는다.
초성으로도 검색이 되지않는다.
indexof 로 검색하기때문에 생기는 문제점들인데 검색방법을 달리하면 개선할수 있을것으로 보인다.
function list_filter(){
var input, keyword, filter, item, title;
input = $("#keyword");
keyword = input.val().toUpperCase();
item = $("tbody > tr");
filter = $("#filter-keyword").text();
console.log(filter);
for(var i = 0; i < item.length; i++){
title = item[i].getElementsByClassName("item-title")[0].innerHTML;
if(title.toUpperCase().indexOf(keyword) > -1){
item[i].style.display = "";
}else{
item[i].style.display = "none";
}
}
}
#차후 목표
한글 검색어 타이핑중 리스트가 사라지는것에 대해 개선해보기
ajax를 활용한 프로그레스바 만들기 (0) | 2017.04.10 |
---|
#목표
웹페이지에서 파일을 업로드시 얼마나 올렸는지 게이지를 확인할 수 있다.
#구현
기본적으로 업로드 프로그레스바는 jquery에 있는 ajax 를 이용한다.
XMLHttpRequest()에서 upload 이벤트로받는 인자값이 파일의 데이터량을 주는데 이것을 전체크기와 현재 로드된 크기를 나눠서 현재 업로드양을 확인할 수 있다.
업로드와 마찬가지로 다운로드도 똑같이 파일 로드된 크기를 알수있지만 브라우저 자체에서 다운로드받는 기능과 겹치면서 두번다운로드받거나 실제로 파일이 받아지지않고 파일내용만 받는 경우가 보였다. 차후에 개선해야될부분이다.
프로그레스바는 부트스트랩을 활용하여 적용하였다.
$(document).ready(function(){
$("#progress > span").html("0%");
var formData = document.getElementById('file');
var fileData = null;
formData.addEventListener("change", handleFile, false);
function handleFile(){
fileData = new FormData($("#fileUpload")[0]);
}
$("#fileUpload").submit(function (evt){
evt.preventDefault();
var progressText = $("#progress > span");
var progress = $("#progress");
var upload = $("#upload");
if(fileData != null){
upload.attr('disabled',true);
$.ajax({
xhr : function(){
var xhr = new window.XMLHttpRequest();
//Upload progress
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = ((evt.loaded / evt.total) * 100).toFixed(1);
//Do something with upload progress
//<![CDATA[
if(parseInt(percentComplete) >= 100){
progressText.html("100% 전송완료");
upload.attr('disabled',false);
}else{
progressText.html(percentComplete + "%");
}
//]]>
progress.css({
width : percentComplete + "%"
});
}
}, false);
return xhr;
},
type : "POST",
url : "/uploadFile.do",
data : fileData,
contentType: false,
processData: false,
success : function(result){
$(location).attr('href',result);
console.log(typeof result);
console.log(result);
}
});
}else{
alert("업로드할 파일을 지정해주세요");
}
});
});
동적 리스트 필터 (0) | 2017.04.12 |
---|
http://zero-gravity.tistory.com/237
팝업창에서 파일경로 보낼시 fakepath 문제 (0) | 2017.07.12 |
---|