옛날에 누가 작업해 놓으신 페이지를 건드리다가.. 아래와 같이 수정을 했는데 생긴 문제입니다.
<a href="javascript:window.open('/home/test.php');">test</a>
위와 같이 자바스크립트를 이용해서 링크를 클릭하면 새 창이 열리도록 코드를 바꾸었는데, 크롬이나 파이어폭스에서는 별 문제 없이 열리는데, 유독 IE에서는 새 창이 열리고 부모 창은 덜렁 [object]라고만 떠 버리는 황당한 상황이 발생하였습니다.
'이게 뭥미' 하고 이것 저것 하다 보니..
새 창을 열고 돌아오는 창 객체 때문에 발생하는 문제였습니다.
보통
myWin = window.open(url)
이런 식으로 하고 처리하는데.. 위처럼 간단하게 인라인으로 처리한다고 해놓으니 리턴값이 부모창에 표시되는 문제였더군요.
이렇게 a tag안에 javascript를 넣어주면 스크립트 실행값이 평가되어 남게됩니다. 하지만, 크롬이나 파이어폭스에서는 [object]로 돌아오면 표시를 안해주지만, IE에서는 이를 표시해주도록 되어 있는 것 같습니다.
그래서 뒤에 void(0)을 붙여주니 정상적으로 원래 페이지에 남아 있게 되네요.
<a href="javascript:window.open('/home/test.php'); void(0)">test</a>
하여튼 IE의 세계는 예측불허라.. 꼭 롹인을 해보아야 하게 만드네요.
다른 좋은 방법이 있으면 알려주십시오. ^^
'Dev > javascript' 카테고리의 다른 글
node.js update 하기 - n package (0) | 2014.09.22 |
---|---|
$http No Access-Control-Allow-Origin 문제 회피 꼼수 (0) | 2014.09.14 |
[AngulrJS] angularJS 개발하는 과정 샘플로 볼 수 있는 글 (0) | 2014.08.27 |
[javascript] validate form.. 예전 방식 (0) | 2014.07.08 |
[jQuery tip] ajax call후에 binding 해놓은 함수 실행이 안될 때 (0) | 2014.06.02 |