HTMLバックリンクを作成する方法


286

<a>前のWebページにリンクするタグを作成する最も簡単な方法は何ですか?基本的にはシミュレートされた戻るボタンですが、実際のハイパーリンクです。クライアント側のテクノロジーのみを使用してください。

編集
通常の静的なハイパーリンクのように、ホバリング時にクリックしようとしているページのURLを表示できるという利点があるソリューションを探しています。history.go(-1)ハイパーリンクにカーソルを合わせたときに、ユーザーに見てもらいたくありません。これまでに見つけたベストは:

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

あるdocument.referrer信頼性はありますか?クロスブラウザは安全ですか?私はより良い答えを受け入れさせていただきます。


2
JavaScriptはクライアント側のテクノロジーであり、一部のクライアント(私のような)は、JavaScriptを無効にすることを選択しています(デフォルト)。それがクライアントの力です!:Dしかし、そうです、HTMLだけでは前のページが何であるかを判断する方法はありません。
アニムソン

回答:


513

そして別の方法:

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


9
ボタンの場合:<button type="button" onclick="javascript:history.back()">Back</button>
レオ

1
この方法の欠点は、「ホバーしてURLを表示」や右クリック->リンクのコピーなどの標準的なブラウザー機能が機能しなくなることです。
Vivek Maharajh 2017

私はそれが意味論についてもっとあると思います。戻る「ボタン」は、戻る「リンク」よりも適切です。どちらのオプションも素晴らしく、どちらのオプションも独自の方法で正しいです。
Jaspreet Singh 2018

111

このソリューションには、ホバー時にリンク先ページのURLを表示するという利点があります。これは、ほとんどのブラウザーがデフォルトで、代わりに、history.go(-1)または同様の方法で行うためです。

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

9
これには、参照さtarget="_blank"れてhistory.go(-1)いないページがリンクの属性で開かれた場合をカバーするという利点もあります。
Chris Krycho

4
このソリューションでは、#に続くリンク部分が失われ、「javascript:history.back()」が正しく機能します。
Liviu 2013年

15
このソリューションの欠点は、複数のページに戻ることができないことです。例; ページa、b、c、dに移動-戻るボタンを繰り返しc、d、c、d、c、d。これを.history.back()と比較します
。a

バックページがない場合に、固定URLにリダイレクトするようにするにはどうすればよいですかhistory.back() || "myaction/mycontroller"
ネスト

私は(新しい回答でこれを取り上げてきました@orangesherbertもこれを満たす「ショーのURL」の要件。
のVivek Maharajh

44

最も簡単な方法は使用することです history.go(-1);

これを試して:

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


41

あなたはjavascriptを試すことができます

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

JavaScriptの戻るボタンを参照してください

編集

参照のURLを表示するにはhttp://www.javascriptkit.com/javatutors/crossmenu2.shtml

そして、次のようにonmouseoverで要素自体を送信します

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>

jsfiddleをチェック


その最後の編集を説明できますか?ほとんどのブラウザの下部に表示されるような通常のリンクが欲しいだけです。
paislee

すべてのブラウザがすべてを表示するので、何もする必要はありませんが、独自のdivに表示したい場合tabledescriptionは、ページの任意の場所にdivを指定して、アンカータグの上にマウスを置いたときにリンクを表示できます
Hemant Metalia

40

このソリューションは、両方の長所を提供します

  • ユーザーがリンクにカーソルを合わせると、URLが表示されます
  • ユーザーはバックスタックが破損することはありません

詳細については、以下のコードコメントを参照してください。

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>


素晴らしい答え。私は、カスタムバインディングのコンテキストで、ほとんどすべてのノックアウトプロジェクトでこれを使用しています。
pimbrouwers 2018

正解です。return false;現在のページがブラウザーの履歴に追加されないようにするには、Chromeのonclick関数に追加する必要がありました。
Marshall Morrise、2018

25

Anchor Tagを使用して前のページに戻る場合<a>、以下は2つの作業方法であり、そのうちの1つより速く、前のページに戻ること大きな利点があります。

私は両方の方法を試しました。

1)

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

上記の方法(1)は、リンクをクリックして現在のブラウザーウィンドウの新しいタブでリンクを開いた場合に適切に機能します。

2)

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

上記の方法(2)は、リンクをクリックして現在のブラウザーウィンドウの現在のタブでリンクを開いた場合にのみ機能します。

新しいタブで開いているリンクがある場合は機能しません。history.back()ウェブブラウザの新しいタブでリンクを開いた場合、ここでは機能しません。


18

戻るリンクは、ユーザーがほとんどのブラウザーで使用できる[戻る]ボタンをクリックしたかのように、ブラウザーを1ページ後方に移動するリンクです。バックリンクはJavaScriptを使用します。ブラウザがJavaScriptをサポートしている場合はJavaScriptをサポートし、window.historyバックリンクに必要なオブジェクトをサポートしている場合は、ブラウザを1ページ戻します。

簡単な方法は

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

または:

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

一般的に言えば、バックリンクは必要ありません。通常、[戻る]ボタンで十分ですが、サイトの前のページにリンクすることもできます。ただし、いくつかの「前の」ページの1つに戻るリンクを提供したい場合があるかもしれません。その場合、戻るリンクが役立ちます。より高度な方法で実行したい場合は、以下のチュートリアルを参照してください:

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


2
最も投票されたソリューションとは異なり、これはユーザーのスクロール位置を維持します。
Ketri

@Ketriは声明のサポートを提供できますか?それらは同一である必要があります:w3schools.com/jsref/met_his_back.asp
FarO



1

history.back()一緒document.write()に使用して、実際に戻る場所がある場合にのみリンクを表示することもできます。

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

document.writeページ上のすべてを上書きします。なぜそれ使うのですか?
jpaugh 2017年

このスクリプトは、ページの読み込み中に実行する必要があります。
Leonid Vasilev 2017年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.