본문 바로가기

개발(IT)/자바스크립트

[개발/자바스크립트] 끔찍한 IE(인터넷 익스플로러)에서 Edge 브라우저 호출 방법

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 옵션의 종류가 궁금하시다면 아래 글을 읽어봐 주세요-!

 

[개발/자바스크립트] window.open target 옵션 종류별 동작 설명

JavaScript의 `window.open()`메서드는 새 브라우저 창 또는 탭을 열 때 사용되며, 두 번째 인자는 새로 열리는 창의 이름이나 타겟(target)을 지정하는 데 사용됩니다.이 인자는 문자열로 전달되며, 다음

bluesmile-dev.tistory.com

 

[개발/자바스크립트] window.open 서로 다른 브라우저 호출시 의미없는 팝업 생성

IE에서 Edge를 호출하는 로직을 개발하는 중 처음에 타겟(target) 옵션을 `_blank`로 테스트를 진행했습니다.결과는 IE에 빈 팝업창이 하나 뜨고 그 후에 제가 호출한 url을 띄우는 Edge 팝업창이 호출되

bluesmile-dev.tistory.com

 

728x90
반응형