13 Stimmen

Was ist eine gute Lösung für cross-browser JavaScript-Weiterleitung mit Verlauf?

Ich kämpfe gerade mit Google Chrome bei der folgenden Aktion:

location.href = url

location.replace(url)

document.location = url

window.navigate(url) // funktioniert nicht in Chrome/Firefox

location.assign(url)

window.open(url, '_self')

window.location.href = url

Ich habe alles versucht, aber keines wird einen Verlaufseintrag hinzufügen. Gibt es einen Weg in Google Chrome, um einen JavaScript-Weiterleitung MIT Verlauf zu machen?

Danke.


Erklärung Wir haben eine Tabelle mit Elementen, wenn man auf die Zeile klickt, möchte ich, dass die Seite zu einer bestimmten URL navigiert, wenn jemand eine gute Lösung dafür hat, die nicht die onclick=send Methode verwendet, die wir im Moment verwenden, bitte lassen Sie es mich wissen.


Update Es scheint, dass auch Stackoverflow dieses genaue Problem hat. Im Hauptansicht, klicken Sie auf eine der ersten 3 Spalten in der Frage-Liste (# Antworten usw.), klicken Sie dann auf die Zurück-Schaltfläche, es wird Sie zurück auf 2 Seiten bringen.

6voto

Josh Stodola Punkte 79569

Auch wenn ich zuerst sagen muss, dass dies Chrome ist, der sich dumm verhält, und Sie sich wahrscheinlich keine Sorgen machen sollten. Versuchen Sie, ein Dummy-Formular zu erstellen und es programmgesteuert mit der GET-Methode zu übermitteln...

Dann Ihr onclick...

var frm = document.forms["dummyForm"];
frm.action = url;
frm.submit();

2voto

rbawaskar Punkte 1015

Alle JavaScript-Lösungen basieren auf der Antwort von @Josh Stodola

function goTo(url, data){
    var ele_form = document.createElement("FORM");
    ele_form.method = "POST";
    ele_form.id = 'dummy_form';
    ele_form.action = url;
    if (!!data){
        for(key in data){
            var dummy_ele = document.createElement('INPUT');
            dummy_ele.name = key;
            dummy_ele.value = data[key];
            dummy_ele.type = 'hidden';
            ele_form.appendChild(dummy_ele);
        }
    }
    document.getElementsByTagName('body')[0].append(ele_form);
    document.getElementById('dummy_form').submit();
}

1voto

frodo2975 Punkte 8206

Ich weiß, dass dies eine ältere Frage ist, aber wenn Sie zu einem Link auf derselben Seite navigieren, sollten Sie einfach Folgendes tun können, wobei 123 die Element-ID ist:

window.location = "items/123";

0voto

Jason Berry Punkte 2469

Was Sie mit jQuery machen könnten, wäre etwas wie:

$("table tbody td").wrapInner('');

Da ich die Struktur Ihres Markups nicht kenne, ist es schwierig, eine spezifischere Lösung anzubieten.

Siehe die jQuery-Dokumentation zu wrapInner.

0voto

Darryl Hein Punkte 138311

Was ist mit dem "Klicken" eines Links mit JS?

blah blah

$(document).ready(function() {
    $('#clickme').click();
});

Ich bin mir nicht sicher, ob das funktioniert, aber es sollte das Klicken eines Benutzers auf den Link nachahmen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X