Bagaimana cara menonaktifkan Tombol KEMBALI browser (lintas browser)?
asp.net
javascript
priyanka.sarkar
sumber
sumber
Jawaban:
Pertanyaan ini sangat mirip dengan ini satu ...
Anda perlu memaksa cache kedaluwarsa agar ini berfungsi. Tempatkan kode berikut pada kode halaman Anda di belakang.
sumber
Jangan nonaktifkan perilaku browser yang diharapkan.
Buat halaman Anda menangani kemungkinan pengguna kembali ke satu atau dua halaman; jangan mencoba untuk melumpuhkan perangkat lunak mereka.
sumber
Saya datang dengan sedikit peretasan yang menonaktifkan tombol kembali menggunakan JavaScript. Saya memeriksanya di chrome 10, firefox 3.6 dan IE9:
Apa yang dilakukannya?
Dari Komentar:
Skrip ini memanfaatkan fakta bahwa browser mempertimbangkan apa pun yang muncul setelah tanda "#" di URL sebagai bagian dari riwayat browsing. Apa yang dilakukannya adalah: Saat halaman dimuat, "# 1" ditambahkan ke URL. Setelah 50 md, "1" dihapus. Ketika pengguna mengklik "kembali", browser mengubah URL kembali seperti sebelum "1" dihapus, TAPI - itu adalah halaman web yang sama, jadi browser tidak perlu memuat ulang halaman. - Yossi Shasho
sumber
Orang lain telah mengambil pendekatan untuk mengatakan "jangan lakukan ini" tetapi itu tidak benar-benar menjawab pertanyaan pembuat poster. Anggap saja semua orang tahu ini adalah ide yang buruk, tetapi kita ingin tahu bagaimana caranya ...
Anda tidak dapat menonaktifkan tombol kembali pada browser pengguna, tetapi Anda dapat membuatnya sehingga aplikasi Anda rusak (menampilkan pesan kesalahan, mengharuskan pengguna untuk memulai kembali) jika pengguna kembali.
Salah satu pendekatan yang saya lihat untuk melakukan ini adalah meneruskan token pada setiap URL dalam aplikasi, dan dalam setiap formulir. Token dibuat ulang di setiap halaman, dan setelah pengguna memuat halaman baru, token apa pun dari halaman sebelumnya menjadi tidak valid.
Saat pengguna memuat halaman, halaman hanya akan ditampilkan jika token yang benar (yang diberikan ke semua link / formulir di halaman sebelumnya) telah diberikan.
Aplikasi perbankan online yang disediakan bank saya seperti ini. Jika Anda menggunakan tombol kembali sama sekali, tidak ada lagi tautan yang akan berfungsi dan tidak ada lagi pemuatan ulang halaman yang dapat dibuat - alih-alih Anda melihat pemberitahuan yang memberi tahu Anda bahwa Anda tidak dapat kembali, dan Anda harus memulai kembali.
sumber
Sementara saya sendiri sedang mencari jawabannya, "Praktik Terbaik" adalah .... usang ... Sama seperti browser. (Sungguh, browser adalah fosil yang jelek)
Solusi terbaik / teraman adalah browser menerapkan metode / permintaan di mana pengguna dapat memberikan halaman kemampuan untuk mengontrol antarmuka.
Mengapa? Karena untuk proyek saya saat ini, saya sedang membangun antarmuka yang 100% dibangun dan dikendalikan JavaScript .. Dan tombol kembali tidak memiliki tempat di proyek saya karena tidak ada perubahan halaman. (Yaitu sangat cepat dan tidak ada halaman yang berkedip karena penyegaran .. Sama seperti aplikasi asli!)
Saya tahu mengapa kemampuan untuk melakukan "highjack" pada antarmuka tidak ada, dan saya memahaminya. Tapi setidaknya kita harus memiliki kemampuan untuk memintanya dari browser! Sekarang itu benar-benar akan menjadi "praktik terbaik" tanpa bahaya highjack.
Tapi browser menjadi browser .. Saya tidak mengharapkan sesuatu yang keluar terjadi dalam hal ini.
sumber
Saya sedang mencari pertanyaan yang sama dan saya menemukan kode berikut di sebuah situs. Berpikir untuk membagikannya di sini:
Namun seperti yang dicatat oleh pengguna di atas, ini bukanlah praktik yang baik dan harus dihindari karena semua alasan.
sumber
Jika Anda mengandalkan teknologi sisi klien, itu dapat dielakkan. Javascript mungkin dinonaktifkan, misalnya. Atau pengguna mungkin menjalankan skrip JS untuk mengatasi batasan Anda.
Dugaan saya adalah Anda hanya dapat melakukan ini dengan pelacakan sisi server dari sesi pengguna, dan mengarahkan (seperti di Server.Transfer, bukan Response.Redirect) pengguna / browser ke halaman yang diperlukan.
sumber
sumber
Ada beberapa implementasi yang berbeda. Ada solusi flash dan beberapa solusi iframe / frame untuk IE. Lihat ini
http://www.contentwithstyle.co.uk/content/fixing-the-back-button-and-enabling-bookmarking-for-ajax-apps
BTW: Ada banyak alasan yang valid untuk menonaktifkan (atau setidaknya mencegah 1 langkah) tombol kembali - lihat gmail sebagai contoh yang menerapkan solusi hash yang dibahas di artikel di atas.
Google "bagaimana ajax mematahkan tombol kembali" dan Anda akan menemukan banyak artikel tentang pengujian pengguna dan validitas menonaktifkan tombol kembali.
sumber
Saya juga memiliki masalah yang sama, menggunakan fungsi skrip Java ini pada tag kepala atau di, 100% berfungsi dengan baik, tidak akan membiarkan Anda kembali.
sumber
Coba kode ini. Bekerja untuk saya. Ini pada dasarnya mengubah hash segera setelah halaman memuat yang mengubah halaman riwayat terbaru dengan menambahkan "1" pada URL. Jadi ketika Anda menekan tombol kembali, itu mengarahkan ke halaman yang sama setiap saat.
sumber
Anda harus menggunakan posting dengan kedaluwarsa dan header cache yang tepat.
sumber
Daripada mencoba menonaktifkan tombol kembali browser, lebih baik mendukungnya. .NET 3.5 dapat menangani tombol mundur (dan maju) browser dengan sangat baik. Cari dengan Google: "Scriptmanager EnableHistory". Anda dapat mengontrol tindakan pengguna mana yang akan menambahkan entri ke riwayat browser (ScriptManager -> AddHistoryPoint) dan aplikasi ASP.NET Anda menerima peristiwa setiap kali pengguna mengklik tombol Mundur / Maju di browser. Ini akan bekerja untuk semua browser yang dikenal
sumber
Secara global, menonaktifkan tombol kembali memang praktik yang buruk. Namun, dalam situasi tertentu, fungsi tombol kembali tidak masuk akal.
Berikut salah satu cara untuk mencegah navigasi yang tidak diinginkan antar halaman:
Halaman atas (file
top.php
):Halaman kedua (file
secondary.php
):Efeknya adalah memungkinkan navigasi dari halaman atas ke depan ke halaman sekunder dan kembali (misalnya Batal) menggunakan link Anda sendiri. Namun, setelah kembali ke halaman atas, tombol kembali browser dicegah untuk menavigasi ke halaman sekunder.
sumber
Bahkan saya menghadapi situasi yang sama sebelumnya ... dan tidak mendapat bantuan. coba hal-hal ini mungkin ini akan berhasil untuk Anda
di
<head>
tag halaman login :di Tombol Keluar Saya melakukan ini:
dan pada halaman login saya telah memfokuskan pada kotak teks Username seperti ini:
semoga ini membantu ... :) seseorang tolong ajari saya cara mengedit halaman ini ...
sumber
JIKA Anda perlu menekan dengan lembut tombol delete dan backspace di aplikasi Web Anda, sehingga ketika mereka mengedit / menghapus item, halaman tidak dialihkan secara tidak terduga, Anda dapat menggunakan kode ini:
sumber
Coba kode ini. Anda hanya perlu menerapkan kode ini di halaman master dan ini akan berfungsi untuk Anda di semua halaman
sumber
Masalah dengan Yossi Shasho Kode 's adalah bahwa halaman tersebut bergulir ke atas setiap 50 ms. Jadi saya telah memodifikasi kode itu. Sekarang berfungsi dengan baik di semua browser modern, IE8 dan yang lebih baru
sumber
Ini sepertinya berhasil untuk kami.
sumber
sumber