2011-01-27 20 views
43

JavaScriptを使用してユーザーをリダイレクトする必要があります。どの方法が好ましい方法ですか?あなたが別の関数呼び出しのオーバーヘッドを持っていないので、確かに第二の方法が好ましいwindow.open target _self v window.location.href?

window.open("webpage.htm", "_self"); 

または

window.location.href = "webpage.htm"; 
+0

新しいウィンドウが開きませんか?私は実際にはわからない。 –

+0

@Gunner、いいえ、同じウィンドウ内でそれを開くので、 "_self" '... –

+0

_selfを_blankに置き換えると、新しいウィンドウで開きます – DOK

答えて

53

window.location.href = "webpage.htm"; 
+1

JacobはOr Wよりも優れた説明を提供しましたフレデリック・ハミディも答えに加えて、私はあなたに両方の答えを贈りたいですが、私は1つを選択しなければならないと思われます。ヤコブが最初に答えたので、答えはあなたに行きます。 – Junto

+0

この方法を使用する場合、 '../../ folder/page.aspx?Source = abcd'のようなリンクを使用しても機能しません。私は自分のリンクを作るために他の方法を使う必要があり、それで "_self"を使うことはできませんでした。 – Christine268

+1

関数呼び出しのオーバーヘッド?ファンクションコールには必ずコストがかかりますが、関連性があるかどうかはわかりませんが、現時点では関数呼び出しは実用的な目的のためにプロパティアクセスと同じくらい効率的です。 JVM上では、パフォーマンスの飛躍に伴い、V8がこれを期待しています。 私の分析に何か問題はありますか? – faizan

3
window.location.href = "webpage.htm"; 
19

他の人が言ったように、第2のアプローチが通常好ましい。

2つのコードスニペットは全く同じではありませんが、最初は実際にウィンドウオブジェクトにwindow.openerを設定しますが、2番目のコードスニペットはそのままFirefoxのままにしておきます。

3

windowを省略して、location.hrefを使用してください。例:

location.href = 'http://google.im/'; 
17

他の誰かがこれを読んで保存されることを望みます。

我々はやったWebKitベースのブラウザで問題が発生しました:

window.open("webpage.htm", "_self"); 

を、我々はあまりにも多くのDOMノードを持っていた場合、ブラウザがロックアップして死んでしまうだろう。

すべてが良好でした。私たちのページが定期的にロードに失敗した原因は明らかではなかったので、問題を引き起こしていた原因を突き止めるのに、しばらく時間を要しました。

0

この

window.open("url","_self"); 
  • を使用してください最初のパラメータ "urlは" あなたが開くしたいページのフルパスです。
  • 2番目のパラメータ "_self"は、同じタブの開いたページに使用されます。別のタブでページを開くには、 "_blank"を使用してください。
+1

この回答は、提案された回答に直接反対しており、ブラウザがクラッシュする可能性があります。このスレッドで私の返答を見てください。さらに、これは、なぜこのメソッドを使用するかを選択する理由を示していません。 –