2013-01-05 2 views
6

를 산출 자바 스크립트/jQuery를에있는 링크를 클릭 시뮬레이션하는 것은, 나는 다음과 같은 코드를 가지고 : 당신이 배경 사업부의 아무 곳이나 클릭하면 효과적으로지금 일반 브라우저 동작

<script> 
$("#clickme").click(function(){ 
    $("#clicker").click(); 
}); 
</script> 
<div id="clickme" style="height:20em; width:20em;"> 
    <a id="clicker" href="http://www.google.com"> Link </a> 
</div> 

를, 자바 스크립트가 시뮬레이션합니다 실제 링크를 클릭하고 목적지 페이지로 이동하십시오.

그러나 브라우저가 새 탭을 열지 않고 URL을 현재 창에로드하기 때문에 Ctrl 키를 누른 채로 클릭하면이 기능이 잘 작동하지 않습니다.

이 동작 대신 배경을 클릭하면 정상적인 브라우저 동작 (예 : 새 탭을 열고 Ctrl 키를 누른 채로 클릭하면 현재 창을 변경하지 않음)을 원합니다. Javascript/jQuery에서이를 수행 할 수있는 방법이 있습니까?

우울한 "ctrl"키를 찾으려고하지 않는 편이 좋습니다. 몇 가지 비슷한 경우가 있으며 차라리 모든 가장자리의 경우를 잡으려고 시도하는 대신 모든 것을 해결하는 솔루션을 원합니다.

+0

다음 질문을 읽어보십시오. http://stackoverflow.com/questions/7867329/jquery-open-url-in-new-tab –

답변

2

(이 제어 할 수 없습니다, 새 창이나 탭 중 하나)이 작업을 수행하는 함수를 ... 물론

function open_url(url) { 
    if (flag) { 
     window.open(url, '_blank'); 
     window.focus(); 
    } else { 
     window.location.href = url; 
    } 
} 

, 당신은 Ctrl 키의 키를 캡처해야합니다 ...

$(window).keypress(function(event) { 
    if (event.ctrlKey) { 
     // set flag 
     flag = true; 
    } else { 
     // unset flag 
     flag = false; 
    } 
}); 
2

나는이 자바 스크립트 아니라는 것을 알고 있지만 나는 좋은 솔루션이 절대적으로 위치 링크를 사용하여 설정하는 것입니다 생각 그것 div에 내용을 클릭하면 이동하지 않도록 음수에 z-index 링크. (이것이 z-index를 무시하는 것보다 바람직하지 않다면) div의 배경을 클릭하면 일반 링크처럼 동작합니다. 다음은이 fiddle

를 참조하면 HTML

<div id="clickme"><a id="clicker" href="http://suu.edu"></a><p>text text</p></div> 

그리고 당신은 그것이 div과 같이하지 않으려면

#clickme{ 
    position: relative; 
    width: 500px; 
    height: 500px; 
    border: 1px solid #000; 
    z-index: 1; 
} 

#clicker{ 
    position: absolute; 
    width: 100%; 
    height: 100%; 
    z-index: -1; 
} 

당신은 CSS로 cursor을 변경할 수 있습니다 CSS 것은 링크입니다 .

관련 문제