2012-01-05 9 views
1

他の多くのコントロールの中にボタンを含むJavaScriptアプリケーションを開発しています。私はいくつかのコントロールでの選択およびこれに基づくURLで新しいウィンドウを開く必要があり、このボタンをクリックすると、私は、生成されたURLは、この「domain.xxように終わる可能性があり、単純なコードwindow.openとアンカー付きのURL

window.open(myurl); 

で作られています/ page#anchor "、これはFFで期待どおりに動作しますが、IEはアンカーを完全に無視します。ページの位置が正しくなく、アンカーもURLに表示されません。

は、私がこの

var test = window.open(); 
test.location.href = myurl; 

コードのように私のコードを書いて解決する期待通りのウィンドウが開きますが、URLを挿入し、ページをロードすることは非常に遅いので、悪いユーザーエクスペリエンスを提供しますことができます。

これを改善する方法はありますか?

+0

なぜパラメータを使用しないのですか? 'test = window.open(myurl);'それはそれより速くなりますか? – OptimusCrime

+0

btw:「ブックマーク」と呼ばれるものは、「アンカー」として知られています。 – Armin

+0

Armin - 私は "it"には多くの名前があると思いますが、正確なアンカーはおそらくもっと正しいでしょう:) OptimusCrime - 私が書いたように、window.open(myurl)を使用してIEのページにアンカーを転送しません。 – keysersoze

答えて

1

私はトリックが

<form action="http://domain.xx/page#bookmark" method="get" target="_blank" name="foo"></form> 

を持っており、クリックで

forms['foo'].submit() 

を行うことでした(かなりしばらく前にある)IEをターゲットと最後の時間。

+0

あなたはjavascriptでフォームを提出する必要はありません。 ''を追加することができます。アクションを操作するだけです。 – Armin

+0

これはうまく動作しないかもしれません - 名前のない送信ボタンがすべてのブラウザで間違ったGETパラメータを作成しないかどうかは決して確認しません。興味深い質問はそれ自体で! –

+0

正しいターゲットがすべてのDTDで無効で、有効なコードを提供しなければならないことを覚えていれば、フォームタグを使用できないため、アプリケーションが含まれているページで問題が発生する可能性があります。私のアプリケーションは、入力、選択、ボタンなどを使用しません - div、span、imgなどは同じ理由からです。 – keysersoze

関連する問題