2011-07-19 7 views
12

(再掲載なし)のページをリロードする window.location.href = window.location.hrefとJSLint

window.location.href = window.location.href; 

を使用している場合は、私たちは、JSLintの「 奇妙な割り当てをどう作るべき、悪い習慣ではありません "苦情?

EDITwindow.location.reload()は、フォームデータを再度POSTしたくない場合には適していません。いくつかのブラウザでは、 "フォームデータの再送信?"必要でないときは避けるのが最善です。

UPDATEは、私はいくつかの非常に簡単なテストを行なったし、見つかった:

  • クローム12とMacのSafari 5.0.5はありません再POSTで.reload()
  • FF 2.0、3.6、4.0、5.0にMacは、ユーザに「resend form dialog」を提示して、,.reload(true)、および.reload(false)
  • IE6、IE8(標準)、IE8(IE7モード、標準) Win7のIE9とIE10-techプレビューは、MacのFFと同じように動作します。
  • window.location = window.location.hrefは、これらのすべてのブラウザで同じように動作します。

ここはthe test scriptです。

+0

jslintのメールリストがありますか?このような質問をすることもできます。 – ErikE

+0

MDN Docs for [window.location.reload(forceGet);](https://developer.mozilla.org/en/window.location#reload) – epascarello

+0

@ErikE:提案に感謝します。これはおそらくJSLintが ''ブラウザ ''オプションが設定されているときに許容したいことかもしれません。 –

答えて

8

は、実際に自分自身に何かを割り当てるための奇妙な割り当てであるこの

window.location = window.location.href; 
+1

'window.location.reload()'はフォームを再POSTしませんか? –

+0

ええ、この回答は正しくありません。 –

+0

投稿の場合は再試行をお願いします。私は自分の答えを編集しました。 – ShankarSangoli

1

を試してみてください。苦情よりも警告のほうが好きです。

私は自分自身が使用することを好む:

window.location.reload() 

編集:が、それは今ではないだろう、フォームを再投稿します。ここには、同じことについてのSOの記事があります。php reload page without posting data

+0

Alasは33秒遅れです。 .. – ErikE

+1

ShankarSangoliへのコメントで私のQを参照してください –

+0

ハハ語り気のないtalkyより多くのコード –

0

これは奇妙な割り当てであり、JSLintが正しいです。問題は、変数を設定するとページをリロードするという副作用があることです。私はこれをwindow.location.href = window.location.href + '';と書いてJSLintのエラーを避け、それが何をしているのかを説明するコメントを書いています。

+0

間違いなく変わった課題です。残念ながら、あなたの提案は助けにはなりません:*行1の問題47:期待された '文字列'と代わりに "'' 'を見た。* –

+0

私はそれをチェックしたことができました。別のtry: 'window.location.href = window.location.href + String();' –

+0

これはJSLintでは問題ありませんが、確かに 'window.location.href = window.location.href;'と同等です。しかし、私はShankarSangoliの 'window.location = window.location.href;'を好むと思うが、これはコメントなしで許すことができると思う。 –

関連する問題