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.

0voto

Tom Anderson Punkte 10636

Unter Verwendung dessen, was Josh Stodola empfohlen hat, und es mit jQuery zu tun, habe ich eine Methode erstellt, die dieses Chrome-Problem anscheinend ohne viel Overhead im Markup umgeht.

Hier ist eine voll funktionsfähige Version.

Reihennavigation mit Verlauf

    body {
        font: 14px Georgia, Serif;
    }

    #page-wrap {
        width: 800px;
        margin: 0 auto;
    }

    table {
        border-collapse:collapse;
        width:100%;
    }
    thead {
        text-align:left;
        font: 16px Serif;
    }
    tbody {
        font: 14px Georgia, Serif;
    }

    tr {
        cursor:pointer;
    }

    td {
        border: 1px solid #ccc;
        padding:10px;
    }

    .slim {
        width:88px;
    }

    .wide {
        width:300px;
    }

    .hover {
        background-color:#eee;
    }

    google.load("jquery", "1.3.2");

    $(function() {

        $("td").hover(function() {
            $(this).parent().addClass("hover");
        }, function() {
            $(this).parent().removeClass("hover");
        });

        $("tr").click(function() {
            if (navigator.userAgent.toString().indexOf("Chrome/2") != -1)
            {
                var form = $("<form></form>");
                form.attr("method", "get");
                form.attr("action", $(this).attr("rel"));
                form.submit();
            } else {
                location.href = $(this).attr("rel");
            }
        });
    });

            Titel
            Beschreibung
            Datum
            Status

            Titel
            Beschreibung
            1/1/2009
            Verfügbar

0voto

Chrome wird nicht unterstützt location.reload. Verwenden Sie window.open(url, '_self') für die Seitenweiterleitung

0voto

Max Hudson Punkte 9668

Hier ist eine schöne funktionale und saubere jQuery-Lösung basierend auf Josh Stodola's (die für mich nicht funktioniert hat).

function redirect(url, data) {
    var form = $('');
    form.attr("action", url);

    for (key in data){
        var input = $('');

        input.attr("name", key);
        input.attr("value", data[key]);

        form.append(input);
    }

    $("body").append(form);

    $(form)[0].submit();
}

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