2008-11-06 17 views
54

Czy istnieje prosty sposób zmodyfikowania tego kodu, aby docelowy adres URL został otwarty w oknie SAME?Javascript: otwórz nową stronę w tym samym oknie

<a href="javascript:q=(document.location.href);void(open('http://example.com/submit.php?url='+escape(q),'','resizable,location,menubar,toolbar,scrollbars,status'));">click here</a>`` 

Odpowiedz

69

Drugim parametrem window.open() jest ciągiem reprezentującym nazwę okna docelowego.

Ustaw na: "_self".

<a href="javascript:q=(document.location.href);void(open('http://example.com/submit.php?url='+escape(q),'_self','resizable,location,menubar,toolbar,scrollbars,status'));">click here</a> 


Sidenote: Poniższe pytanie daje przegląd w prawdopodobnie lepszym sposobem związania obsługi zdarzeń do łącza HTML.

What's the best way to replace links with js functions?

7
<a href="javascript:;" onclick="window.location = 'http://example.com/submit.php?url=' + escape(document.location.href);'">Go</a>; 
1

zabrałbym że nieco inny sposób, gdybym był tobą. Zmień link tekstowy po wczytaniu strony, a nie po kliknięciu. Podam przykład w jQuery, ale równie dobrze może to być zrobione w wanilii JavaScript (chociaż, jQuery jest ładniejszy)

$(function() { 
    $('a[href$="url="]') // all links whose href ends in "url=" 
     .each(function(i, el) { 
      this.href += escape(document.location.href); 
     }) 
    ; 
}); 

i napisać HTML tak:

<a href="http://example.com/submit.php?url=">...</a> 

korzyści z tego czy ludzie widzą, co klikają (href jest już ustawiony), i usuwa javascript z twojego HTML.

Wszystko to mówi, wygląda na to, że używasz PHP ... dlaczego nie dodać go po stronie serwera?

1

Dodając adres URL na końcu href, każdy link otworzy się w tym samym oknie? Prawdopodobnie możesz również użyć _BLANK w HTML, aby zrobić to samo.

3

wypróbować ten pracował dla mnie w IE 7 i IE 8

$(this).click(function (j) { 
      var href = ($(this).attr('href')); 
      window.location = href; 
      return true; 
70
<script type="text/javascript"> 
window.open ('YourNewPage.htm','_self',false) 
</script> 

zobaczyć referencyjny: http://www.w3schools.com/jsref/met_win_open.asp

+0

To jest naprawdę zapisz mój dzień ehehe ... :) –

+0

"Fałsz" ma oznaczać, że możesz użyć przycisku wstecz, aby wrócić t o stronę, która utworzyła okno, prawda? To nie działa dla mnie. – Noumenon

2

Oto co pracował dla mnie:

<button name="redirect" onClick="redirect()">button name</button> 
<script type="text/javascript"> 
function redirect(){ 
var url = "http://www.google.com"; 
window.open(url, '_top'); 
} 
</script> 
Powiązane problemy