2013-01-05 41 views
6

verir JavaScript/jQuery bir bağlantısının tıklanmasını simulasyonu, Aşağıdaki kod var: Arka plan div üzerinde herhangi bir yere tıklarsanız, EtkiliŞu anda normal tarayıcı davranışını

<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> 

, JavaScript bir simüle edilecek gerçek linke tıklayın ve sizi hedef sayfaya götürün. Ancak, tarayıcı yeni bir sekme açmayacağından ve URL'yi geçerli pencereye yüklediğinden, ctrl-tıklamayı denediğinizde, bu pek işe yaramamaktadır. Bunun yerine bu davranışın

, ben arka plan tıklandığında (yani yeni bir sekme açın ctrl-tıklama için geçerli pencereyi değişmez) normal tarayıcı davranışını sahip olmak istiyorum. Bunu Javascript/jQuery'de yapmanın bir yolu var mı?

"Ctrl" tuşunu depresif olarak algılamayı denemeyi tercih ederim - birkaç benzer örnek var ve her kenarda böyle bir şeyi yakalamaya çalışmak yerine her şeyi çözen bir çözümü tercih ediyorum.

+0

Bu soruya göz atmayı düşünün: http://stackoverflow.com/questions/7867329/jquery-open-url-in-new-tab –

cevap

2

(ki kontrol edemez, yeni bir pencere veya sekme ya) bunu yapacak bir fonksiyon ... Tabii

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

, sen Ctrl tuşa basma yakalamak zorunda kalacak ...

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

bu javascript değil biliyorum ama iyi bir çözüm kesinlikle konumlandırılmış linki kullanınız ve ayara olacağını düşünüyorum onun div içerikle tıklayarak gitmeyecek şekilde negatif bir sayıya z-index bağlantı. (Bu arzu edilmedikçe, z-endeksini görmezden gelmek istemez) Sonra div'in arka planını tıklamak normal bir link gibi davranacaktır. İşte bu fiddle

Bkz HTML

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

Ve bunu div gibi görünmek istemiyorsanız

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

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

Sen css ile cursor değiştirebilir CSS olan bir bağlantıdır .