2013-03-01 16 views
32

Mam aplikację internetową, która wyświetla wiersze z przyciskami go i delete.Otwórz nową kartę (okno), klikając łącze w jquery

Jeśli użytkownik kliknie go, powinien otworzyć nową kartę/okno z adresem URL utworzonym z danych wiersza.

Jak mogę to zrobić w jquery? Co robię to:

$('.go').click(function() { 
    var wid = {{ wid|tojson|safe }}; 
    var sid = $(this).prop('id'); 
    url = $script_root + '/' + wid + '/' + sid; 

    // go to url 
}); 

niektóre zmiana:

co mi naprawdę tring do osiągnięcia jest dynamicznie aktualizować href elementu <a>.

<a id="foo" href="#">foo</a> 
<script type="text/javascript> 
$('#foo').click(function() { 
    $(this).prop('href', 'http://www.google.com/'); 
}); 
</script> 

który nie działa (skrzypce: http://jsfiddle.net/6eLjA/)

+0

czy to nie jest kod jQuery.? –

+0

możesz podać "_blank" podczas wywoływania window.open –

+0

Odwiedź http://stackoverflow.com/questions/7554108/javascript-window-location-in-new-tab –

Odpowiedz

85

Spróbuj tego:

window.open(url, '_blank'); 

Spowoduje to otwarcie w nowej karcie (jeśli kod jest synchroniczna i w tym przypadku. w innym przypadku otworzy okno)

+0

Co masz na myśli przez * jeśli twój kod jest synchroniczny * ? – VisioN

+6

@VisioN Ten kod nie otworzy nowej karty: $ .get ('someurl', function() {window.open ('anotherurl', '_blank');)), otworzy okno, ponieważ żądanie ajax jest asynchroniczne przez domyślnie (możesz to zmienić) – karaxuna

+1

Otrzymuję alert w Google Chrome informujący, że zablokował "Pop-up". Jakaś pomoc z tym? Czy istnieje sposób, aby go pominąć? – RPDeshaies

Powiązane problemy