1

Web サイトの内部ページに「戻る」リンクを配置したいと考えています。私が簡単に使用できるコードは次のとおりです。

<script>document.write('<a href="#" onClick="history.go(-1); return:false;"></a>')</script>

しかし、誰かがホバーしたときに前のページのURLが表示されず、前のページがない場合(新しいタブでリンクを開くときなど)も機能しません。そのため、前のページがある場合にのみ表示され、URL も表示されるコードが必要です。どなたか良い方法をご存じでしたらよろしくお願いします..

4

3 に答える 3

2

document.referrerが私の提案です。

非表示の div を作成し、その div にリンクを配置します。

<div id="NavBack">//hide it
    <a>link here</a>
</div>

ドキュメントの読み込み時に、「前の URL」のようなものが存在するかどうかを確認します。表示されている場合は、戻るか非表示にできるリンクを持つ #NavBack が表示されます。これを参照

ヒントを提供するために、コードのパッチで回答を更新しました。

<div id="NavBack" style="display:none;">
    <a id='test'>link here</a>
</div>
<script type="text/javascript">
if(document.referrer!=''){
    var a = document.getElementById("test");
    a.href=document.referrer;
    document.getElementById("NavBack").style.display='block';
}
</script>

上記のコードを使用しましたが、完全に機能しました。ただし、これは標準的な方法ではないことを明確にさせてください。これは、私が伝えたいアイデアを提供するためのものです。JavaScript の代わりに jquery を使用し、プロジェクトでインライン CSS を指定しないでください。

于 2013-02-05T08:40:09.100 に答える
0

MDN で記述されているようにオブジェクトを使用できますhistory

var h = window.history;
hSize = h.length; // is there any history
h.back();

また、これらのメソッドに対するブラウザのサポートも確認してください。

于 2013-02-05T08:32:54.743 に答える
0

を使用して履歴エントリがあるかどうかを確認する必要がありますwindow.history.length。ゼロより大きい場合は、リンクを挿入します。

以下も参照してください。

https://developer.mozilla.org/en-US/docs/DOM/window.history

https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history

于 2013-02-05T08:33:40.473 に答える