Cara menghentikan redirect ke halaman lain di javascript

Seringkali, kami perlu mengarahkan pengguna ke situs web lain atau halaman web lain di situs yang sama. Ada beberapa cara untuk mengarahkan ulang yang meliputi pengalihan JavaScript, pengalihan sisi server, dan pengalihan penyegaran meta HTML. Pengalihan pada dasarnya adalah mekanisme untuk mengirim pengguna ke alamat URL lain

Motivasi untuk menggunakan pengalihan dapat bervariasi, dalam banyak kasus, karena

  • Anda pindah ke domain lain karena alasan apa pun, sehingga Anda dapat mengalihkan pengguna ke domain baru saat mereka mengakses konten di domain lama

  • Anda memiliki banyak halaman yang kontennya bervariasi berdasarkan lokasi, bahasa, browser, atau faktor lain yang menjadi dasar Anda mengarahkan pengguna ke halaman yang paling sesuai

  • Anda mengalihkan permintaan pengguna yang tidak diautentikasi atau tidak sah ke sumber daya ke halaman login

  • Anda mengirim pengguna ke halaman lain yang berkorelasi dengan konten situs saat ini

Semua ini secara praktis dicapai melalui objek Location yang berisi informasi URL. Ada beberapa cara untuk melakukan ini, dengan mengotak-atik properti yang berbeda dari objek Location. Dalam tutorial ini, kita akan melihat cara mengarahkan pengguna ke halaman web lain dalam JavaScript dan apa yang harus diwaspadai untuk meminimalkan potensi dampak SEO negatif

Objek window.location_ menunjukkan lokasi saat ini, atau lebih tepatnya, URL jendela/pengguna. Ini secara teknis adalah properti read-only, meskipun demikian, kita dapat memanipulasinya dengan menetapkan nilai baru (DOMStrings) ke propertinya. Awalan windows di objek windows.location = "//stackabuse.com"; 0 dapat dihilangkan karena terletak secara hierarkis di bagian atas ruang lingkup

Properti windows.location = "//stackabuse.com"; 1 menunjukkan URL saat ini sebagai sebuah String. Mengubah properti windows.location = "//stackabuse.com"; _2 juga akan secara otomatis mengarahkan pengguna ke nilai windows.location = "//stackabuse.com"; 2 yang baru. Mengubah properti windows.location = "//stackabuse.com"; _2 semudah menetapkan nilai baru padanya

location.href = "//stackabuse.com/";

Catatan. Baris kode yang setara secara fungsional adalah

windows.location = "//stackabuse.com";

Perlu dicatat bahwa Anda dapat mengarahkan pengguna ke domain selain dari domain yang mereka gunakan saat ini dengan pendekatan ini, meskipun, masalah keamanan dapat muncul dari ini, jadi praktik tersebut harus dihindari jika memungkinkan

Pengalihan biasanya terkait dengan beberapa jenis peristiwa, seperti menekan tombol yang mengalihkan pengguna ke halaman web yang berbeda, atau peristiwa lain, seperti pengguna melakukan beberapa operasi di situs web (mengunggah gambar di media sosial, setelah itu mereka ' . Mari kita tulis fungsi sederhana yang mengarahkan ulang pengguna dengan mengklik tombol

Redirection

Menyetel properti windows.location = "//stackabuse.com"; _2 serupa dengan apa yang dilakukan klik mouse

Metode windows.location = "//stackabuse.com"; 6 memuat sumber daya di windows.location = "//stackabuse.com"; 7 yang disediakan, dan menampilkannya di windows.location = "//stackabuse.com"; 8. Ini sebenarnya adalah pendekatan yang lebih disukai untuk mengalihkan pengguna dibandingkan dengan mengatur properti windows.location = "//stackabuse.com"; 2, karena ini juga memeriksa keamanan windows.location = "//stackabuse.com"; 7 yang disediakan, memberikan pengecualian jika itu bukan tujuan yang aman. Manfaat lainnya adalah membuat entri baru dalam riwayat browser, memungkinkan pengguna untuk "Kembali" dengan anggun jika mereka mau.

Perlu juga dicatat bahwa Redirection _1 tidak mengizinkan pengalihan lintas sumber. Anda hanya dapat mengalihkan ke domain yang sama tempat panggilan dilakukan, yang berdampak positif pada keamanan

Selain itu, ini dapat digunakan dengan cara yang sama seperti menetapkan nilai baru ke windows.location = "//stackabuse.com"; 1. Mari kita tulis ulang halaman kita untuk menggunakan fungsi Redirection 3 sebagai gantinya

Assigning

Metode Redirection _4 dapat digunakan untuk mengganti sumber daya saat ini di windows.location = "//stackabuse.com"; 8, dengan sumber daya yang dimuat dari windows.location = "//stackabuse.com"; 7. Itu tidak benar-benar mengarahkan pengguna, dan tidak disimpan dalam riwayat browser. Batasan keamanan yang sama ada seperti pada metode Redirection 3, yang menjadikannya metode yang diinginkan untuk digunakan jika Anda ingin mengganti konten dengan halaman lain

Replacing

Perlu juga dicatat bahwa metode Redirection _3 memiliki potensi, kon. Jika pengguna ingin kembali ke halaman yang secara otomatis menjalankan metode Redirection 3, mereka akan diarahkan kembali ke halaman yang telah mereka coba kembali. Mereka kemudian memasuki lingkaran "kembali" melalui Tombol Kembali, tetapi dialihkan ke halaman lain karena metode Redirection 3

Jika Anda menggunakan Redirection 3, pastikan itu tidak dipanggil secara otomatis di halaman, dan pemanggilannya memerlukan tindakan pengguna, seperti memanggilnya dengan menekan tombol. Jika tidak - gunakan Assigning 2

Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan menyertakan lembar contekan. Hentikan perintah Googling Git dan benar-benar pelajari itu

Selain itu, Assigning _2 adalah yang paling dekat dengan pengalihan HTTP, karena tautan asli tidak ditambahkan ke riwayat browser

Implikasi Keamanan dan Efek Samping

Keamanan yang disebutkan berlaku untuk semua metode di atas dan mengacu pada aspek-aspek berikut

  • Jika asal skrip yang memanggil metode tidak sama dengan asal halaman saat ini - ini akan diperlakukan sebagai pelanggaran keamanan dan DOMException dari tipe Assigning 4 akan dibuang. Artinya, pustaka dan layanan eksternal yang disematkan ke halaman Anda sendiri tidak akan dapat mengalihkan pengguna
  • Jika URL yang disimpan tidak valid, Assigning 5 akan dilempar
  • Jika Anda mengalihkan pengguna ke domain selain dari domain yang sudah mereka gunakan sebelumnya, CORS dapat memulai dan mencegahnya

Beberapa kemungkinan efek samping yang dapat terjadi karena masalah desain yang disebabkan oleh manusia adalah

  • Ketika pengalihan (selain Assigning 6) terjadi terlalu cepat (i. e. dalam waktu kurang dari 3 detik) dapat merusak tombol kembali pada browser. Ini berarti bahwa setiap kali Anda mencoba untuk kembali ke halaman sebelumnya, pengalihan akan terjadi sekali lagi hampir seketika, menciptakan putaran tak terbatas
  • Ini dapat dianggap sebagai Halaman Doorway (i. e halaman yang dibuat untuk manipulasi indeks SEO) yang tidak disarankan
  • Pengalihan yang direncanakan dan digunakan dengan buruk dapat menyebabkan pengalihan berantai, pengalihan antara dua halaman atau lebih

Pengaruh pada SEO

Ada banyak faktor yang memengaruhi SEO, dan banyak di antaranya yang sebenarnya tidak diketahui publik, agar tidak disalahgunakan. Padahal, yang pasti kode yang dioptimalkan dengan buruk dapat berdampak negatif pada SEO. Ini dapat menyebabkan waktu muat yang lama, rangkaian pengalihan, atau bahkan pengulangan. Banyak perayap web tidak akan mengeksekusi kode JavaScript yang dapat memengaruhi peringkat halaman secara negatif

Cara terbaik untuk mengatasi masalah ini mungkin

  • Untuk mengeluarkan dengan benar pengalihan HTTP di sisi server dengan salah satu kode status pengalihan ( Assigning 7) atau untuk mengeluarkan Assigning 8 untuk halaman yang tidak lagi ingin Anda hosting atau tuju

  • Untuk memberi tahu mesin telusur tentang halaman duplikat dengan menambahkan Assigning 9 di bagian tersebut. Ini lebih mudah diterapkan daripada melakukan pekerjaan tambahan apa pun di sisi server, tetapi perlu diingat bahwa tidak semua perayap web akan menghargainya

Kesimpulan

Dalam tutorial ini, kita telah membahas cara melakukan pengalihan menggunakan JavaScript, serta implikasi keamanan dan pengaruh potensial pada SEO

Bagaimana cara berhenti mengalihkan ke halaman lain?

Hentikan Pengalihan Chrome di Android .
Buka aplikasi Google Chrome di perangkat Android Anda
Ketuk tiga titik di pojok kanan atas
Pilih “Pengaturan. ”
Gulir ke bawah ke "Lanjutan" dan tekan "Pengaturan situs. ”
Ketuk “Munculan dan pengalihan. ”
Nonaktifkan tombol sakelar

Bagaimana cara menghentikan pengalihan tag jangkar?

Dalam metode clickHandle, Anda dapat memanggil preventDefault untuk mencegah penyegaran/pengalihan laman.

Bagaimana cara menghentikan pengalihan Ajax?

Jawaban Anda .
Anda dapat menyelesaikan masalah ini seperti ini
Tambahkan middleware untuk memproses respons, jika itu adalah redirect untuk permintaan ajax, ubah respons menjadi respons normal dengan url redirect
Kemudian di ajaxComplete, jika responsnya berisi redirect, itu pasti redirect, jadi ubah lokasi browser

Postingan terbaru

LIHAT SEMUA