Hinzufügen einer Onclick-Funktion, um in JavaScript zur URL zu gelangen?

100

Ich verwende dieses schicke kleine JavaScript, um ein Feld hervorzuheben, während der Benutzer darüber schwebt. Könnten Sie mir bitte sagen, ob es eine Möglichkeit gibt, eine onclickFunktion hinzuzufügen , die als Link fungiert und zu einer URL führt?

<script>
         $(function() {
            $('tr').hover(function() {
                $(this).css('background-color', '#eee');
                $(this).contents('td').css({'border': '0px solid red', 'border-left': 'none', 'border-right': 'none'});
                $(this).contents('td:first').css('border-left', '0px solid red');
                $(this).contents('td:last').css('border-right', '0px solid red');
            },
            function() {
                $(this).css('background-color', '#FFFFFF');
                $(this).contents('td').css('border', 'none');
                $('a#read_message.php').click(function(){ URL(); });
            });
        });
        </script>
John Taylor
quelle
Wie erhalte ich den URL-Wert, ist es ein Link in einer der Tabellenzellen oder gehen alle zur gleichen URL
Renon Stewart
2
Sie haben dort eine ziemlich seltsame ID '# read_message.php'?
Alex Gill

Antworten:

168

Versuchen

 window.location = url;

Auch verwenden

 window.open(url);

wenn Sie in einem neuen Fenster öffnen möchten.

Rick Donohoe
quelle
128

Verwenden Sie dies einfach

onclick="location.href='pageurl.html';"
Aamir Shahzad
quelle
9
Dies öffnet den Link innerhalb desselben Fensters, während die akzeptierte Antwort in einem neuen Fenster geöffnet wird. Ich bevorzuge den Ansatz dieser Antwort
Hamman Samuel
33

In jquery, um einen Benutzer an eine andere URL zu senden, können Sie dies folgendermaßen tun:

$("a#thing_to_click").on('click', function(){
     window.location = "http://www.google.com/";    
});

Dieser Weg wird auch funktionieren, aber das Obige ist heutzutage der neuere, korrektere Weg, dies zu tun

$("a#thing_to_click").click(function(e){
         e.preventDefault();
         window.location = "http://www.google.com/";    
});
azzy81
quelle
11
function URL() {
    location.href = 'http://your.url.here';
}
TWR Cole
quelle
8

HTML

<input type="button" value="My Button" 
onclick="location.href = 'https://myurl'" />

MVC

<input type="button" value="My Button" 
onclick="location.href='@Url.Action("MyAction", "MyController", new { id = 1 })'" />
Moji
quelle
6

Wenn Sie einen Link in einem neuen Tab öffnen möchten, können Sie:

$("a#thing_to_click").on('click',function(){
    window.open('https://yoururl.com', '_blank');
});
Jack J.
quelle
3

Wenn Sie sich mit <a>Tags beschäftigen und die Standardeinstellung unterbrechen möchten, hrefsollten Sie thisstattdessen verwenden.

Gehen Sie zur Standard-URL (Yahoo):

<a href="https://yahoo.com" onclick="location.href='https://google.com';"> 

Gehe zu neuer URL (Google) onclick:

<a href="https://yahoo.com" onclick="this.href='https://google.com';">

Durch die Verwendung thisunterbrechen Sie das aktuelle Browserereignis onclickund ändern es, hrefbevor Sie mit dem Standardverhalten von fortfahren<a href='...

Darvydas Šilkus
quelle
Hallo @Darvydas, der obige Code funktioniert wie erwartet, aber wie kann man warten, bis die Seite geladen wird, um ein weiteres Ereignis für die neu geladene URL auszuführen?
FayazMd
@ FayazMd nicht sicher, was Sie versuchen zu tun? Wenn es sich um JavaScript im DOM (aktuell im DOM-Element a) als Webseite handelt, können Sie das JS-Verhalten auf der nächsten Seite (auf der Sie die Browserseite umleiten) normalerweise nicht steuern. Wenn der Benutzer die Seite verlässt, ist dies erledigt. Es sei denn, Sie steuern auch die zweite Seite und warten dort möglicherweise auf das Laden der Seite für jeden Benutzer und prüfen document.referrer, ob es sich um die richtige Person handelt. Es könnte auch eine andere Geschichte sein, wenn Sie so etwas wie eine Erweiterung / ein Add-On für den Browser verwenden, der Änderungen der Seiten-URL abhören kann.
Darvydas Šilkus
Hallo @Darvydas, danke für deine Antwort. Ich möchte es wie folgt versuchen. In der Browserkonsole kann die Verwendung von Javascript mit selbstausführender Funktion 1) Ich möchte eine meiner Website-URLs laden und 2) Ich möchte warten, bis sie vollständig geladen ist 3) Damit diese Webseite eine Tabelle enthält, aus der ich sie erstellen muss extrahiere alle Zeilen. Ich kann Schritt 1 ausführen und wenn ich mich auf einer bereits geladenen Website befinde, kann ich in der Konsole Tabellenzeilen (in Javascript-Code) extrahieren. Wenn ich jedoch versuche, Code für die obigen Schritte nacheinander zu schreiben,
schlägt dies
2

Ich bin mir nicht ganz sicher, ob ich die Frage verstehe, aber meinst du so etwas?

$('#something').click(function() { 
    document.location = 'http://somewhere.com/';
} );
Nigel
quelle
Ja, im Grunde ist das Javascript so eingestellt, dass die Tabellenfelder hervorgehoben werden, wenn ein Benutzer über den Tabelleninhalt / die Tabelleninformationen scrollt / schwebt. Ich möchte den Eindruck erwecken, dass das hervorgehobene Feld anklickbar ist, damit es mit einer Seite verknüpft ist. wenn das mehr Sinn macht. Entschuldigung, wenn nicht.
John Taylor
Ich habe es gelöst. Ich habe nur deinen Code leicht angepasst, anstatt # zu verwenden. Ich habe tr eingegeben, um die Tabelle darzustellen, und es hat funktioniert. danke
John Taylor
0

Versuchen

location = url;

Kamil Kiełczewski
quelle