Domanda

Esiste un modo semplice per modificare questo codice in modo che l'URL di destinazione si apra nella stessa finestra?

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

È stato utile?

Soluzione

Il secondo parametro di window.open () è una stringa che rappresenta il nome della finestra di destinazione.

Impostalo su: " _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>


Nota a margine: La seguente domanda offre una panoramica di un modo probabilmente migliore per associare i gestori di eventi ai collegamenti HTML.

Qual è il modo migliore sostituire i collegamenti con le funzioni js?

Altri suggerimenti

<script type="text/javascript">
window.open ('YourNewPage.htm','_self',false)
</script>

vedi riferimento: http://www.w3schools.com/jsref/met_win_open.asp

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

prova questo ha funzionato per me in ie 7 e cioè 8

 $(this).click(function (j) {
            var href = ($(this).attr('href'));
            window.location = href;
            return true;

Ecco cosa ha funzionato per me:

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

Lo prenderei in un modo leggermente diverso se fossi in te. Cambia il link di testo quando la pagina viene caricata, non al clic. Darò l'esempio in jQuery, ma potrebbe facilmente essere fatto in javascript alla vaniglia (sebbene, jQuery sia più bello)

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

e scrivi il tuo HTML in questo modo:

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

i vantaggi di questo sono che le persone possono vedere su cosa stanno facendo clic (l'href è già impostato) e rimuove il javascript dal tuo HTML.

Detto questo, sembra che tu stia usando PHP ... perché non aggiungerlo sul lato server?

Quindi aggiungendo l'URL alla fine dell'href, ogni link si aprirà nella stessa finestra? Probabilmente potresti anche usare _BLANK all'interno dell'HTML per fare la stessa cosa.

try

<a href="#" 
   onclick="location='http://example.com/submit.php?url='+escape(location)"
   >click here</a>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top