2014-08-27 1 views
-1

내부 및 외부 링크가 포함 된 선택 드롭 다운 목록이 있습니다. 나는 외부 링크를 (그리고 그들 만) 새 탭에서 열길 바래. 이것이 내가 가진 것입니다.새 탭의 선택/옵션 드롭 다운에서 외부 링크 열기

<select id="my-dropdown"> 
    <option value="">A list of internal and external links</option> 
    <option value="http://www.someurl.com">External Link</option> 
    <option value="/internal/page">Internal links</option> 
</select> 

JS 링크를여십시오.

<script> 
    document.getElementById("my-dropdown").onchange = function() { 
     if (this.selectedIndex!==0) { 
      window.location.href = this.value; 
     }   
    }; 
</script> 

편집 :이에 JS를 변경하면이를 수행합니다

<script> 
    document.getElementById("my-dropdown").onchange = function() { 

     var externalLinkCheck = this.options[this.selectedIndex].value; 

     if (this.selectedIndex!==0 && externalLinkCheck.substring(0,4) == "http") { 
      window.open(this.value, '_blank'); 
     } else { 
      window.location.href = this.value; 
     }   
    }; 
</script> 

chriserwin 아래의 대답도 좋다! 감사!

답변

2

당신은 외부 링크의 http:// 접두사를 찾는 또 다른 조건을 추가 할 수 있습니다.

<script> 
    document.getElementById("my-dropdown").onchange = function() { 
     if (this.selectedIndex!==0) { 
      if (this.value.indexOf('http://') == 0) { 
       window.open(this.value); 
      } 
      else { 
       window.location.href = this.value; 
      } 
     } 
    }; 
</script> 

그러나 대부분의 브라우저에는 프로그램 적으로 열린 새 창을 닫을 수있는 팝업 차단기가 있습니다. 일반적으로 onclick 이벤트를 처리하는 코드 만 팝업 차단기를 우회 할 수 있습니다.

0

당신은 다음과 같이 수행 할 수 있습니다

<script> 
    document.getElementById("my-dropdown").onchange = function() { 
     if(this.selectedIndex!==0) { 
      var win=window.open(this.value, '_blank'); 
      win.focus(); 
     }   
    }; 
</script> 
+0

외부 또는 내부 링크인지 확인합니다. –

+0

외부 링크입니다. !! –

+0

위의 질문을 읽어주십시오. 현재 탭에는 내부 링크가 열려 있어야하고 외부 링크는 새 탭에서 열어야합니다. 나는 당신의 코드 검사를 생각하지 않습니까? 아니면 내가 틀렸어? –