Category Archives: javascript

sheetjs사용해서 IE11에서 xlsx 파일 import에러 문제해결

chrome에서는 정상동작하는데 IE11에서 아래와 같은 에러가 발생함
var wb = XLSX.read(fileData, {type : ‘binary’}); 구분때문에 발생하는 문제로 해결방법을 찾다가 결국 알아내서 남겨둔다.

해결방법

xlsx.full.min.js 라이브러리 바로 아래에 xlsx.extendscript.js를 추가한다(xlsx.extendscript.min.js는 안됨)

참고페이지

SheetJS : JS로 엑셀 파일 읽기 예제
https://eblo.tistory.com/83

SheetJS IE호환성 문제 해결
https://velog.io/@y46028911/1.-SheetJS-IE%ED%98%B8%ED%99%98%EC%84%B1-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0

window.open 변수넘길때, post방식으로 하기

 

1) GET방식

/* get */
window.open(URL + "&" + encodeURI($.param(params, true)), "popup_id", 'height=' + 650  + ',width=' + 1024 + 'fullscreen=yes');

 

2) POST방식

/* post */
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", url);
form.setAttribute("target", "popup_id");

var input = document.createElement('input');
input.type = 'hidden';
input.name = "변수1";
input.value = "변수값1";
form.appendChild(input);

input = document.createElement('input');
input.type = 'hidden';
input.name = "변수2";
input.value = "변수값2";
form.appendChild(input);

input = document.createElement('input');
input.type = 'hidden';
input.name = "변수3";
input.value = "변수값3";
form.appendChild(input);

document.body.appendChild(form);

if( /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor) ){
	window.open(url, "popup_id");
}else{
	window.open(url, "popup_id", "resizable=yes,toolbar=yes,menubar=yes,location=yes");
}

form.submit();

document.body.removeChild(form);

 

실수연산 문제

자바스크립트로 실수연산할 때, 괴상망측한 값이 나오는 경우를 확인함

707.4+226.2 = 933.5999999999999

보통의 경우는 값 * 100 / 100.0 을 하면 해결되지만, 확실한 건 아니므로

값 * E / E 를 사용하도록 하자.

var E = Number('1e' + 1);
var sum =  (parseFloat(707.4) + parseFloat(226.2))*E/E

**참고블로그
영이블로그 – 실수연산문제 (http://sunychoi.github.io/javascript/2015/04/05/javascript-float-type-error.html)

 

 

javascript underscore library _.defer() sample

function gogogo(arg,scope) {
document.write(scope + arg + ‘<br />’);
}

var ori = “AAA”;
var dest = “BBB”;
gogogo(“first”,ori);

setTimeout(function() {
gogogo(“setTimeout”,ori);
},1);

_.defer(function() {
gogogo(“defer”,ori);
setTimeout(function() {
gogogo(“setTimeout2”,ori);
},1);
ori = dest;
});

gogogo(“last”,ori);

결과 :

AAAfirst
AAAlast
AAAsetTimeout
AAAdefer
BBBsetTimeout2

 

테스트:
https://jsfiddle.net/7t2bV/59/

node.js로 채팅서버 만들기

vmware에 윈도우10 설치
atom편집기 설치
highlight등의 팩키지 설치
node.js 설치
npm 명령으로 express, socket.io, nodemon 설치
[Node.js/Socket.io 강좌] 실시간 채팅 웹사이트 만들기 [출처] [Node.js/Socket.io 강좌] 실시간 채팅 웹사이트 만들기|작성자 azure0777

vmware에서 실행한 웹서버를 hostpc에서 접속하기 위해서는
hostpc에서 vmnetcfg.exe를 실행해서 VMnet8-NAT 설정을 해줘야한다.
방화벽도 인바운드를 추가
VMWare로 가상 운영체제를 통해 서버 돌리기(컴퓨터매니아의 컴블로그)