2012-01-05 98 views
1

我正在開發一個JavaScript應用程序,它在很多其他控件中包含一個按鈕。單擊此按鈕時我需要打開基於在控制做了一些選擇的URL的新窗口,這個我有一個簡單的代碼window.open和具有錨點的網址

window.open(myurl); 

由生成的URL可能最終會像這樣「domain.xx/page#anchor「,這在FF中按預期工作,但IE完全忽略錨點 - 頁面位置不正確,錨點甚至沒有顯示在URL中。

我能解決這個問題寫我這樣的代碼

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

代碼打開如預期的窗口,但插入的URL和加載頁面速度很慢,因此給出了一個不好的用戶體驗。

任何想法如何使這更好?

+0

爲什麼不使用參數? 'test = window.open(myurl);'。這是否讓它更快? – OptimusCrime 2012-01-05 11:01:58

+0

btw:你稱之爲「書籤」,我知道是「錨點」。 – Armin 2012-01-05 11:04:44

+0

Armin - 我認爲「它」有很多名字,但是正確的,錨點可能更正確:) OptimusCrime - 正如我寫的,使用window.open(myurl)不會將錨點轉移到IE中的頁面。 – keysersoze 2012-01-05 12:13:07

回答

1

我最後一次有針對性的IE(這是前一段)的伎倆是有一個

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

和點擊做

forms['foo'].submit() 

+0

您不需要使用javascript提交表單。你可以添加一個''。你只需要操縱行動。 – Armin 2012-01-05 11:10:20

+0

這可能會或可能不會工作 - 我從來沒有檢查過,如果一個匿名提交按鈕不會在所有瀏覽器中創建一個僞GET參數。有趣的問題在它自己的權利! – 2012-01-05 11:16:16

+0

如果我記得正確的目標在所有DTD中都是無效的,並且我必須提供有效的代碼 - 同時我不能使用表單標籤,因爲它最終可能會在包含我的應用程序的頁面上出現問題。我的應用程序不使用輸入,選擇,按鈕等 - 只有div,span,img等因爲相同的原因。 – keysersoze 2012-01-05 11:31:40