안녕하세요.
Layer Popup을 사용할때 Layer popup에서 Layer를 하나 더 띄우고 창닫기를 누를때 .Remove()를 사용해서 삭제가 가능합니다. 단 크롬이나 파이어 폭스에서만 이 로직이 가능합니다. IE에서 사용할경우 Script에러를 뿜어냅니다. 이후 로직이 동작하지 않고 화면이 빈 화면에서 멈춰버리죠. 그래서 IE상에서 이를 해결할 방법을 이야기 해보겠습니다.
Script에서 IE 브라우저 확인 해서 분기 나누기
IF(Request.Broswer.Broswer.Equal("INTERNETEXPLORER")) // 사용 안하는게 좋은 구문..
위처럼 IE여부를 찾을수 있습니다. 다만 위의 로직은 특정 OS나 특정 브라우저 버전에서 MOZILLA로 인식되는 현상이 있습니다.
그래서 아래의 방식을 사용해서 IE 브라우저 여부를 확인합니다.
IF(agent.indexOf("msie") != -1){}
IE 10 이상 버전 체크
IF(agent.indexOf("rv:1") != -1){}
IE 여부 체크
IF(agent.indexOf("msie") != -1 || agent.indexOf("rv:1") != -1 ){}
ELSE {
// Chrome , FireFox 등
}
이 두 구문을 이용해서 IE 브라우저 여부를 체크 합니다.
크로스 브라우저 지원하는 Remove() Script 의 대체를 이용
var test = parent.document.getElementById("test");
test.remove();
.remove() 가 IE에서 동작을 하지 않기 때문에 아래의 대체 로직 사용
var test = parent.document.getElementById("test");
test.parentNode.removeChild(test);
생각보다 간단한 로직입니다. 다만 생각보다 검색 자료가 많이 부족해서 이와같이 올립니다.
감사합니다.
'프로그래밍 > Etc.' 카테고리의 다른 글
C# 카드번호 여부 체크 로직 (0) | 2017.12.28 |
---|---|
윈도우즈 10 이전 윈도우 삭제 하기 C:\Windows.old 폴더 삭제하기 (0) | 2017.12.13 |
반응형 UI에서 IE 8 호완성 문제 (1) | 2017.10.17 |
NotePad 빈칸을 Tab으로 변환하기 (0) | 2017.03.28 |
Menu 쿼리 만들기. (0) | 2017.03.24 |