it-swarm.com.de

Javascript: öffne neue Seite im selben Fenster

Gibt es eine einfache Möglichkeit, diesen Code so zu ändern, dass die Ziel-URL im GLEICHEN Fenster geöffnet wird?

<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>``
57
55skidoo

Der zweite Parameter von window.open () ist eine Zeichenfolge, die den Namen des Zielfensters darstellt.

Setzen Sie es auf: "_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>


Randnotiz: Die folgende Frage gibt einen Überblick über eine wohl bessere Möglichkeit, Event-Handler an HTML-Links zu binden.

Wie werden Links am besten durch js-Funktionen ersetzt?

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

siehe Referenz: http://www.w3schools.com/jsref/met_win_open.asp

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

Folgendes hat bei mir funktioniert:

<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>
3
Felceris Juozas

versuchen Sie dies, es hat bei mir in IE 7 und IE 8 funktioniert

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

Wenn Sie also die URL am Ende der href hinzufügen, wird jeder Link im selben Fenster geöffnet. Sie könnten wahrscheinlich auch _BLANK innerhalb des HTML-Codes verwenden, um dasselbe zu tun.

1
Brett Melton

Ich würde das etwas anders sehen, wenn ich du wäre. Ändern Sie den Textlink beim Laden der Seite, nicht beim Klicken. Ich werde das Beispiel in jQuery geben, aber es könnte leicht in Vanilla Javascript gemacht werden (obwohl jQuery netter ist)

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

und schreibe dein HTML so:

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

dies hat den Vorteil, dass die Benutzer sehen können, worauf sie klicken (die href ist bereits festgelegt), und dass Javascript aus Ihrem HTML-Code entfernt wird.

Alles in allem sieht es so aus, als würdest du PHP verwenden ... warum fügst du es nicht serverseitig hinzu?

1
nickf

versuchen

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