2013-06-18 14 views

Odpowiedz

0

można to zrobić za pomocą poniższego kodu.

<script language="javascript"> 
$("a").click(function(event) 
{ 
    if(event.button==2) 
    { 
    return false;  
    } 
}); 
</script> 
+0

co masz na myśli przez event.button == 2 tutaj? Czy mógłbyś wyjaśnić? Próbuję także zatrzymać odsyłacz od otwarcia do nowej zakładki/okna. – Vikram

+0

Przycisk 2 oznacza drugie kliknięcie myszy. –

+0

dzięki za pomysł, ale powinno być, jeśli (event.which == 2) event.which == 1 kliknij lewym przyciskiem myszy event.which == 2 kliknij środkowy kliknij event.which == 3 kliknij prawym przyciskiem .. Myślę, że event.button == 2 dla prawego kliknięcia z jquery –

1

Możesz użyć łącza javascript zamiast zwykłych html. Po prostu wykonaj polecenie href = "javascript: void (0)" i zarządzaj zdarzeniem kliknięcia, aby przekierować stronę. Nie spowoduje to usunięcia opcji otwierania w innej karcie, ale sprawi, że strona faktycznie się nie otworzy po wypróbowaniu.

Również zamiast tagu HTML można zamiast tego użyć innego znacznika, np. I nadać mu kursor: wskaźnik właściwości css i jquery onclick, aby działał jak łącze. Spowoduje to całkowite usunięcie z menu kontekstowego opcji "otwórz w innej karcie".

22

Nie wiem, dlaczego, że chcesz to zrobić, ale można to zrobić poprzez przesuwanie href do atrybutu data-href, następnie wyjąć href i dodanie obsługi kliknięcia. W onclick przeczytasz data-href i przekierowanie.

Demo

var links = document.getElementsByTagName("a"); 

for(var i=0; i<links.length; i++){ 
    links[i].setAttribute("data-href", links[i].getAttribute("href")); 
    links[i].removeAttribute("href"); 
    links[i].onclick = function(){ 
     window.location = this.getAttribute("data-href"); 
    }; 
} 

menu kliknij prawym pokazuje:

enter image description here

+1

To jest najczystsza opcja, zgadzam się z Mr Code – box86rowh

+0

Właśnie googlowałem do tego. Powodem, dla którego chciałbym to zrobić, jest to, że mam skonfigurowane połączenia, które uruchamiają akcję ajaxową w modalu, a jeśli użytkownik otworzy ją w nowej karcie, to ją zepsuje (ponieważ jest w nowym oknie, a nie w modalnym i nie ma całego kontekstu, jakiego potrzebuje). Biorąc pod uwagę to, że href jest najlepszym rozwiązaniem, myślę: będę musiał dodać trochę dodatkowej stylizacji, aby znów wyglądały jak linki. –

Powiązane problemy