2015-10-08 110 views
-1

這可能有點不合常規,但我試圖實現一些內容,當用戶單擊時,應該在同一個選項卡中打開特定頁面,同時打開並關閉另一個頁面瞬間,而用戶注意到Firefox window.open不工作

我使用這個代碼,並在Chrome中工作正常,但不是在FF或Safari -

<a href='https://www.abc123.com' onclick=window.open("https://www.xyz123.com","_blank").close();'>abc123</a> 

有沒有一種方法,使在FF和Safari這項工作?

謝謝!

+0

你們是不是要開,因爲你需要一些服務器端代碼來運行立即關閉網頁,但不希望顯示什麼?我認爲AJAX可能是最好的選擇。另一種選擇是創建一個不可見的IFrame並在其中加載頁面。 –

+0

丹尼爾 - 你是對的,xyz123頁面本身負責服務器端操作,這就是爲什麼我試圖打開它作爲一個網頁,而不是。 – zweil

回答

1

我想你錯過了'

<a href='https://www.abc123.com' onclick='window.open("https://www.xyz123.com","_blank").close()'>abc123</a>

Chrome是有時聰明,當涉及到固定輸錯代碼。這就是爲什麼它可以在Chrome上運行,而不是在FF/Safari中運行。

1

我不知道你到底想要達到什麼樣的目標,但是向第二頁(xyz1234.com)發出ajax請求並且收到重定向到所需頁面(abc121.com)的響應會更好。

根據第一條評論編輯:

您需要記錄使用操作。有兩種方法:

  1. 正如指出之前,你可以使用Ajax請求來記錄用戶操作。當您在日誌記錄完成時收到響應(ajax.onreadystatechange回調)並且您可以將用戶重定向到所需的頁面。對這種事情使用ajax並不是很常見的做法。
  2. 喜歡google/twitter/facebook等。首先記錄數據然後重定向到期望的頁面。這意味着你可以寫你的鏈接。記錄完成後,您可以根據「realurl」參數重定向到右頁。只要注意你將如何發送realurl參數 - 純文本,編碼版本或轉義版本。其實你不能將它作爲純文本發送,因爲存在一些問題(在get方法中有保留的符號),但其他兩種方式都可以。

祝你好運:)

+0

嗨Kamen Stoykov-我基本上試圖打開一個登陸頁面(abc123),但在此之前,我需要打開一個頁面,註銷用戶(xyz123)。 – zweil