Bagaimana cara membuat tautan balik HTML?


286

Apa cara paling sederhana untuk membuat <a>tag yang tertaut ke halaman web sebelumnya? Pada dasarnya tombol kembali disimulasikan, tetapi hyperlink yang sebenarnya. Tolong, hanya teknologi sisi klien.

Sunting
Mencari solusi yang memiliki manfaat menampilkan URL laman yang akan Anda klik saat mengarahkan, seperti hyperlink statis normal. Saya lebih suka tidak melihat pengguna history.go(-1)saat melayang di hyperlink. Yang terbaik yang saya temukan sejauh ini adalah:

<script>
  document.write('<a href="' + document.referrer + '">Go Back</a>');
</script>

Apakah bisa document.referrerdiandalkan? Aman lintas-browser? Saya akan dengan senang hati menerima jawaban yang lebih baik.


2
JavaScript adalah teknologi sisi klien, beberapa klien (seperti saya) hanya memilih untuk menonaktifkannya (secara default). Itulah kekuatan klien! : D Tapi ya, tidak ada cara untuk HTML sendiri untuk menentukan apa halaman sebelumnya.
animuson

Jawaban:


513

Dan cara lain:

<a href="javascript:history.back()">Go Back</a>


9
Dan untuk sebuah tombol:<button type="button" onclick="javascript:history.back()">Back</button>
Leo

1
Kelemahan dari pendekatan ini adalah bahwa fitur browser standar seperti "arahkan kursor untuk melihat URL" dan klik kanan -> tautan salin akan rusak.
Vivek Maharajh

Saya pikir ini lebih tentang semantik. "Tombol" kembali lebih tepat daripada "tautan" kembali. Kedua opsi tersebut hebat dan kedua opsi tersebut benar dengan caranya sendiri.
Jaspreet Singh

111

Solusi ini memiliki manfaat menampilkan URL halaman yang ditautkan ke pada saat melayang, seperti yang dilakukan sebagian besar browser secara default, alih-alih history.go(-1)atau serupa:

<script>
    document.write('<a href="' + document.referrer + '">Go Back</a>');
</script>

9
Ini juga memiliki manfaat mencakup kasus yang dibuka oleh halaman referensi dengan target="_blank"atribut pada tautan, yang history.go(-1)tidak.
Chris Krycho

4
Solusi ini kehilangan bagian tautan berikut #, 'javascript: history.back ()' berfungsi dengan benar.
Liviu

16
Kelemahan dari solusi ini adalah Anda tidak akan dapat kembali lebih dari satu halaman. Contoh; arahkan ke halaman a, b, c, d - tekan tombol kembali berulang kali c, d, c, d, c, d. Bandingkan ini dengan .history.back () a, b, c, d tekan tombol kembali berulang kali d, c, b, a
atreeon

Bagaimana saya bisa membuatnya sehingga dalam kasus tidak ada halaman belakang, kemudian mengarahkan untuk tetap urlhistory.back() || "myaction/mycontroller"
sarang

@orangesherbert Saya sudah membahas ini dalam jawaban baru (yang juga memenuhi persyaratan "tunjukkan URL".
Vivek Maharajh

44

Cara termudah adalah menggunakan history.go(-1);

Coba ini:

<a href="#" onclick="history.go(-1)">Go Back</a>


41

Anda dapat mencoba javascript

<A HREF="javascript:history.go(-1)">

lihat Tombol Kembali JavaScript

EDIT

untuk menampilkan url dari rujukan http://www.javascriptkit.com/javatutors/crossmenu2.shtml

dan kirim elemen itu sendiri di onmouseover sebagai berikut

function showtext(thetext) {
  if (!document.getElementById)
    return
  textcontainerobj = document.getElementById("tabledescription")
  browserdetect = textcontainerobj.filters ? "ie" : typeof textcontainerobj.style.MozOpacity == "string" ? "mozilla" : ""
  instantset(baseopacity)
  document.getElementById("tabledescription").innerHTML = thetext.href
  highlighting = setInterval("gradualfade(textcontainerobj)", 50)
}
 <a href="http://www.javascriptkit.com" onMouseover="showtext(this)" onMouseout="hidetext()">JavaScript Kit</a>

periksa jsfiddle


dapatkah Anda menjelaskan suntingan terakhir itu? Saya hanya ingin tautan normal seperti yang ditampilkan di bagian bawah sebagian besar browser.
paislee

karena semua browser menunjukkan untuk semua untuk itu Anda tidak perlu melakukan apa pun tetapi jika Anda ingin menampilkannya di div Anda sendiri, Anda dapat menentukan div tabledescriptiondi mana saja di halaman untuk menampilkan tautan pada mouse melalui tag anchor
Hemant Metalia

40

Solusi ini memberi Anda yang terbaik dari kedua dunia

  • Pengguna dapat mengarahkan kursor ke tautan untuk melihat URL
  • Pengguna tidak berakhir dengan tumpukan yang rusak

Lebih detail dalam komentar kode di bawah ini.

var element = document.getElementById('back-link');

// Provide a standard href to facilitate standard browser features such as 
//  - Hover to see link
//  - Right click and copy link
//  - Right click and open in new tab
element.setAttribute('href', document.referrer);

// We can't let the browser use the above href for navigation. If it does, 
// the browser will think that it is a regular link, and place the current 
// page on the browser history, so that if the user clicks "back" again,
// it'll actually return to this page. We need to perform a native back to
// integrate properly into the browser's history behavior
element.onclick = function() {
  history.back();
  return false;
}
<a id="back-link">back</a>


Jawaban yang luar biasa. Saya menggunakan ini di hampir semua proyek sistem gugur saya dalam konteks pengikatan kustom.
pimbrouwers

Jawaban bagus! Saya harus menambahkan return false;fungsi onclick di Chrome agar tidak menambahkan halaman saat ini ke riwayat browser.
Marshall Morrise

25

Untuk kembali ke halaman sebelumnya menggunakan jangkar Tag <a>, di bawah ini adalah 2 metode kerja dan keluar dari mereka 1 satu adalah lebih cepat dan memiliki satu keuntungan besar dalam akan kembali ke halaman sebelumnya.

Saya sudah mencoba kedua metode ini.

1)

<a href="#" onclick="location.href = document.referrer; return false;">Go Back</a>

Metode di atas (1) berfungsi dengan baik jika Anda telah mengklik tautan dan membuka tautan di Tab Baru di jendela browser saat ini.

2)

<a href="javascript:history.back()">Go Back</a>

Metode di atas (2) hanya berfungsi jika Anda telah mengklik tautan dan membuka tautan di Tab Saat Ini di jendela browser saat ini.

Ini tidak akan berfungsi jika Anda memiliki tautan terbuka di Tab Baru. Di sini history.back()tidak akan berfungsi jika tautan dibuka di Tab Baru peramban web.


18

Tautan balik adalah tautan yang menggerakkan browser mundur satu halaman, seolah-olah pengguna telah mengeklik tombol Kembali yang tersedia di sebagian besar browser. Tautan balik menggunakan JavaScript. Ini memindahkan browser kembali satu halaman jika browser Anda mendukung JavaScript (yang itu lakukan) dan jika mendukung window.historyobjek, yang diperlukan untuk backlink.

Cara-cara sederhana adalah

<a href="#" onClick="history.go(-1)">Go Back</a>

ATAU:

function goBack() {
  window.history.back()
}
<a href="#" onclick="goBack()" />Go Back</a>

Secara umum tautan balik tidak diperlukan ... tombol Kembali biasanya cukup baik, dan biasanya Anda juga dapat dengan mudah menautkan ke halaman sebelumnya di situs Anda. Namun, kadang-kadang Anda mungkin ingin memberikan tautan kembali ke salah satu dari beberapa halaman "sebelumnya", dan di situlah tautan balik berguna. Jadi saya merujuk Anda tutorial di bawah ini jika Anda ingin melakukannya dengan cara yang lebih maju:

http://www.htmlcodetutorial.com/linking/linking_famsupp_108.html


2
Tidak seperti solusi yang paling banyak dipilih, ini mempertahankan posisi gulir yang dimiliki pengguna.
Ketri

@ Ketri dapatkah Anda memberikan dukungan untuk pernyataan itu? mereka harus identik: w3schools.com/jsref/met_his_back.asp
FarO

8

coba ini

<a href="javascript:history.go(-1)"> Go Back </a>


1

Anda juga dapat menggunakan di history.back()sampingnya document.write()untuk menampilkan tautan hanya ketika sebenarnya ada tempat untuk kembali ke:

<script>
  if (history.length > 1) {
    document.write('<a href="javascript:history.back()">Go back</a>');
  }
</script>

document.writemenimpa semua yang ada di halaman. Mengapa Anda pernah menggunakan itu?
jpaugh

Anda harus menjalankan skrip ini saat halaman masih memuat.
Leonid Vasilev

0

Cara terbaik menggunakan tombol adalah

<input type= 'button' onclick='javascript:history.back();return false;' value='Back'>

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.