728x90
반응형
아직도 IE를 쓰고 있는 곳에서 잠시 일을 하게 됐습니다.
OCX를 사용하기 때문이죠.....{{{(>_<)}}}
끔찍한 IE에서 타 서비스 URL을 호출해야 하는데, 타 서비스는 IE를 지원하지 않는다고 합니다.
어쩔 수 없이 IE에서 Edge를 호출하는 방법을 찾아보게 됐습니다.
방법은 간단하게도 호출한 URL 앞에 `'microsoft-edge:'`를 붙여주면 됩니다.
현재 브라우저가 IE인지 판단하고 IE인 경우 `'microsoft-edge:'` 프로토콜을 붙여 `window.open()`명령어를 사용하면 끝입니다.
var url = “https://www.naver.com”;
if(navigator.userAgent.indexOf(“Trident”) > 0) {
url = “microsoft-edge:” + url;
}
window.open(url, “_blank”);
위의 샘플 코드는 현재 브라우저에서 개발자 도구를 열어 바로 테스트해 봐도 좋습니다.
`window.open` 동작의 한계
간단하게 해결이 됐지만, 서로 다른 브라우저이므로 약간의 제약사항이 있었습니다.
바로 `window.open()`에서 제공하는 옵션(예: `width`, `heigth` 등)을 사용할 수 없다는 것입니다.
`"microsoft-edge:"`프로토콜은 단순히 URL을 Edge 브라우저로 전달하며, 이 과정에서 창의 크기나 위치 같은 속성을 제어할 수 있는 제어권은 없다고 해요.
불가피하게 옵션을 적용해야 하는 상황이라면 ActiveX 또는 외부 프로세스를 호출하는 로직을 개발해야 합니다.
`window.open`명령어의 두 번째 인자 target 옵션의 종류가 궁금하시다면 아래 글을 읽어봐 주세요-!
728x90
반응형
'개발(IT) > 자바스크립트' 카테고리의 다른 글
[개발/자바스크립트] window.open 서로 다른 브라우저 호출시 의미없는 팝업 생성 (0) | 2025.01.06 |
---|---|
[개발/자바스크립트] window.open target 옵션 종류별 동작 설명 (0) | 2025.01.06 |
[개발/자바스크립트] void 연산자 (0) | 2024.03.25 |
[개발/자바스크립트] 폴리필(polyfill)과 바벨(Babel)이란(정의 및 구분/차이점) (2) | 2023.09.24 |