2012-04-19 2 views
-2

다음과 같이 A HREF이 내가 HREF를 클릭하고 클릭 할 때Href에하고 확인 버튼을

$("a.eLink").click(function link(evt) { 
     url = evt.target.href; 

     if (url.toString().toLowerCase().indexOf(".gov") <= 0) { 

      var tk = "Do you really want to continue?"; 

      if (confirm(tk)) { 
       window.open(url, 'newwin'); 
      }else{ 
       window.open(url,'_self'); 
      } 
     } 
     else 
     { window.open(url, 'newwin'); } 

     return false; 
    }); 
}); 

이제 내 문제는 '취소 '확인 버튼에서 내 페이지는 "abc.com"으로 이동하지만 일어날 수 없습니다. 내 브라우저는 동일하게 유지되어야합니다. 어떤 스크립트가 다른 부분에서 사용해야하므로 동일한 페이지로 남습니다. 감사.

+0

HTML 및 JS 코드가 들여 쓰기되어 올바른 형식으로 나타났습니다. 나중에 참조 할 수 있도록 4 개의 공백으로 코드를 들여 쓰거나 강조 표시하고 **'{}'** 버튼을 클릭하는 것으로 간단합니다. –

+0

jQuery 태그를 추가했다는 것을 알았습니다. 아마도 칙칙한 표준 확인 상자 대신 jQuery UI 대화 상자를 활용하는 것이 좋습니다. –

+0

Im는 "동일하게 유지"하는 것이 무엇을 의미하는지 확실하지 않습니다. 페이지를 떠나고 싶지 않거나 링크가 정상적으로 작동하기를 원합니 까? – voigtan

답변

2

당신의 else 성명에서 window.open을 제거해야합니다.

if (confirm(tk)) { 
    window.open(url, 'newwin'); 
    } 

(!) 참고, IE8 당신이 당신 자신의 구현을 작성하여 패치 할 수 있도록 indexOf 기능을 구현하지 않습니다 낮은.

기본 동작이 이미 return false; (jQuery를 스타일)에 의해 방지되어야한다
+0

@ javaiText, 이것이 작동하지 않는 jsFiddle을 게시 할 수 있습니까? 나는 IC가 무엇을 복제하고 잘 작동하는 것 : http://jsfiddle.net/WJa2D/ –

+1

@ javaiText : 오류에 대한 콘솔을 확인하십시오. 나는 당신에게 오류가 발생하고있는 것으로 추측하고 JS는 전혀 작동하지 않습니다. –

0

당신은이 :

var tk = "Do you really want to continue?"; 

      if (confirm(tk)) { 
       window.open(url, 'newwin'); 
      }else{ 
       window.open(url,'_self'); 
      } 

이 그들이 취소를 클릭하면, False 여전히 링크를 열 것이다, 반환된다는 것을 의미합니다. 당신은 그냥 밖으로 다른 사람을

if (confirm(tk)) { 
        window.open(url, 'newwin'); 
       } 
+0

그냥'this.href'가 아닌가요? – ThiefMaster

1

문제는 실행 window.open(url,'_self');을 취소 클릭하면 바로

확인이 fiddle

확인 조건의 다른 부분을 제거하는 것입니다
+0

그 밖의 부분을 제거하지 마십시오 – JNPW

+0

-1'return false;'는 당신이 설명하는 것처럼 작동하지 않지만'evt.preventDefault();' – iambriansreed

+0

[javaiText] (http://stackoverflow.com/users/1071967/javaitext) check jQuery 문서에 따르면 this [fiddle] (http://jsfiddle.net/bRQzy/) –

관련 문제