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>

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.


128

Verwenden Sie dies einfach

onclick="location.href='pageurl.html';"

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/";    
});

11
function URL() {
    location.href = 'http://your.url.here';
}

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 })'" />

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');
});

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='...


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/';
} );

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.