2012-02-20 109 views
3

我對js生成的「表單」有一個奇怪的問題。該代碼是這樣的:target =「_ blank」彈出一個窗口,而不是打開一個新標籤頁

var form_ = 
    '<form method="get" action="/foo/bar/" target="_blank">' + 
     '<input type="hidden" name="a" value="' + a + '"/>' + 
     '<input type="hidden" name="b" value="' + b +'"/>' + 
     '<input type="hidden" name="c" value="' + c + '"/>' + 
    '</form>'; 

$(form_).appendTo('body').submit().remove(); 

a是包含日期(dd/mm/yyyy)和b,c是數字字符串變量。

我在應用程序的很多地方使用了這段代碼,實際上在同一個HTML中有一個非常類似的代碼,可以像我期望的那樣打開一個新的選項卡,但是這個特定的代碼試圖彈出一個窗口。

我試過使用Firefox,Chrome和IE。

+0

是否有任何理由希望它提交併在新選項卡中打開表單? – 2012-02-20 11:09:06

回答

2

圍繞你的應用發佈表單的其他地方,或者他們只是鏈接?

打開新選項卡或瀏覽器的新實例的行爲是可配置的Internet Explorer 9(工具|互聯網設定|標籤|設置)

在Firefox中,這些選項在工具|選項|標籤

Chrome似乎沒有爲此設置,但您可以通過右鍵單擊鏈接在新窗口或新選項卡之間進行選擇。

8

target="_blank"用於在新窗口中打開目標。大多數現代瀏覽器打開新標籤的事實不是由任何標準定義的,並且通常由用戶通過設置來控制。

如果您的瀏覽器設置爲在選項卡而不是窗口中打開新鏈接,並且在這種情況下不起作用,則可能發現了一個錯誤。

+0

那麼gmail如何鏈接到下一個新TAB? – 2012-03-02 04:56:55

0

從答案這裏給出:http://www.plus2net.com/html_tutorial/submit-new.php

<form name="f1" type="post" action="test5.html"> 
<input type="submit" value="Open default action file test5.html" onclick="this.form.target='_blank';return true;" /> 
</form> 

編輯:這對我的作品在Chrome,但我看不出有任何理由爲什麼這應該產生任何不同的行爲,通過JS或不去。最終,瀏覽器將決定發生什麼,最有可能兩種方法都會以相同的結果結束。

相關問題