2011-02-25 9 views
6

は、それが理由として任意のヒントなしで当然の「javascript:history.go(-1)」を使用して何が問題になっていますか?

javascript:history.go(-1) 

を使用するのがいかに恐ろしいに関するいくつかのTwitterの冗談に出くわしました。

それはひどい場合、なぜですか?代わりに何がありますか? (history.back()のほか、まったく同じことをしているようです)。それはクロスブラウザの互換性の問題ですか?

たとえば、エラーページでこれを使用して、ユーザーが上記を使用して「元に戻ろう」ようにしていることがわかりました。

私はGoogleを試してみましたが、役に立たないのは、なぜそれがとても恐ろしいことでしょうか。どんなポインタ/説明も認められるでしょう。

ありがとうございました。

+0

一部のページで問題があることが判明した履歴のページはリロードされません –

答えて

5

疑似プロトコルjavascript:の使用を指している可能性があります。これは、一般的に、これがアンカーのhref属性であり、これは醜いことを意味します。実際のリンクではなく、JavaScriptを無効にしても、機能的なリンクのように見えるものは何もしません。私はこのプロトコルの唯一の有効な使用はブックマークレットのためだと思う。

また、Russell Dias points outと同じように、戻るボタンとまったく同じですので、持っているのは何ですか?再ロードボタンもありますか?window.location.reload()

+0

本質的に不必要な冗長性の良い点 – andryuha

+0

興味深い。必要な場合の1つの例:製品検索結果ページのユーザーは、結果の表示を変更するフォームフィルターを使用します。これらのフィルタはクエリ文字列を更新します。ユーザーが商品をクリックすると、その商品ページに「戻る」リンクが表示されます。 JSメソッドは、結果を正しいクエリー文字列でページに戻します。ハードコーディングされたリンクはありません。 –

3

私の頭の上から外す。私はこのjavascriptがブラウザの戻るボタンをシミュレートすると信じています。ユーザーが特定のページにどのようにアクセスしたか、つまり外部サイトを介してページにアクセスした可能性があるかどうかは決して確信できません。この実装は単純に、それらを返信することになり、望ましい結果ではないかもしれません。

+0

確かに、私のエラーページの例のように意図された動作であればどうなりますか? – andryuha

+0

+1有効なポイント – alex

+0

@andryuha:正直言って、それがインデントされた動作なら、私はそれに何か間違って見ることはできません。私はいくつかの大きなサイトがそれを使用しているのを見たことがあります。 –

関連する問題