Menambahkan fungsi onclick untuk membuka url di JavaScript?

100

Saya menggunakan JavaScript kecil yang mewah ini untuk menyorot sebuah bidang saat pengguna mengarahkan kursor ke atasnya. Bisakah Anda memberi tahu saya jika ada cara untuk menambahkan onclickfungsi yang akan bertindak sebagai tautan dan menuju ke URL?

<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
sumber
Bagaimana cara mendapatkan nilai url, apakah itu tautan di salah satu sel tabel atau apakah semuanya pergi ke url yang sama
Renon Stewart
2
Anda memiliki ID yang agak aneh di sana '# read_message.php'?
Alex Gill

Jawaban:

169

Mencoba

 window.location = url;

Juga gunakan

 window.open(url);

jika Anda ingin membuka di jendela baru.

Rick Donohoe
sumber
131

Cukup gunakan ini

onclick="location.href='pageurl.html';"
Aamir Shahzad
sumber
9
Ini membuka tautan di jendela yang sama, sedangkan jawaban yang diterima terbuka di jendela baru. Saya lebih suka pendekatan jawaban ini
Hamman Samuel
33

Di jquery untuk mengirim pengguna ke URL lain, Anda dapat melakukannya seperti ini:

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

cara ini akan berhasil juga, tetapi cara di atas adalah cara baru yang lebih tepat untuk melakukannya saat ini

$("a#thing_to_click").click(function(e){
         e.preventDefault();
         window.location = "http://www.google.com/";    
});
azzy81
sumber
11
function URL() {
    location.href = 'http://your.url.here';
}
TWR Cole
sumber
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
sumber
6

Jika Anda ingin membuka tautan di tab baru, Anda dapat:

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

Jika Anda berurusan dengan <a>tag, dan Anda ingin menginterupsi ke default, hrefAnda harus menggunakan thissebagai gantinya.

Buka url default (yahoo):

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

Buka url baru (google) onclick:

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

Dengan menggunakan thisAnda menyela onclickacara browser saat ini dan mengubah hrefsebelum melanjutkan ke perilaku default<a href='...

Darvydas Šilkus
sumber
Hai @Darvydas, kode di atas berfungsi seperti yang diharapkan, tetapi bagaimana cara menunggu hingga pemuatan halaman untuk melakukan acara lain di url yang baru dimuat.?
FayazMd
@FayazMd tidak yakin apa yang Anda coba lakukan? Biasanya jika JavaScript di dalam DOM (saat ini di dalam elemen DOM a) sebagai halaman web Anda tidak dapat mengontrol perilaku JS di halaman berikutnya (di mana Anda mengarahkan halaman browser). Ketika pengguna meninggalkan halaman itu selesai. Kecuali Anda juga mengontrol halaman kedua, dan mungkin mendengarkan pemuatan halaman di sana untuk setiap pengguna dan memeriksa document.referreruntuk mengetahui apakah itu orang yang tepat. Selain itu, mungkin lain cerita jika Anda menggunakan sesuatu seperti ekstensi / add-on untuk browser yang dapat mendengarkan perubahan URL halaman.
Darvydas Šilkus
Hai @Darvydas, terima kasih atas balasan Anda. Saya ingin mencoba sebagai berikut. di konsol browser, menggunakan javascript dengan fungsi self executing mungkin 1) Saya ingin memuat salah satu url situs web saya dan 2) ingin menunggu sampai benar-benar dimuat 3) sehingga, halaman web tersebut memiliki tabel yang saya perlukan untuk ekstrak semua baris. Saya dapat melakukan langkah 1 dan jika saya berada di situs web yang sudah dimuat maka di konsol saya dapat mengekstrak baris tabel (dalam kode javascript). Namun, ketika saya mencoba menulis kode secara berurutan untuk langkah-langkah di atas, gagal pada langkah 2.
FayazMd
2

Tidak sepenuhnya yakin saya memahami pertanyaannya, tetapi apakah maksud Anda sesuatu seperti ini?

$('#something').click(function() { 
    document.location = 'http://somewhere.com/';
} );
Nigel
sumber
ya, pada dasarnya javascript diatur untuk menyorot bidang tabel saat pengguna menggulir / mengarahkan kursor ke konten / informasi tabel. saya ingin membuatnya tampak seperti bidang yang disorot dapat diklik sehingga ditautkan ke halaman. jika itu lebih masuk akal. maaf jika tidak.
John Taylor
menyelesaikannya. hanya mengadaptasi sedikit kode ur daripada menggunakan # i dimasukkan ke tr untuk mewakili tabel dan berhasil. terima kasih
John Taylor
0

mencoba

location = url;

Kamil Kiełczewski
sumber