點擊後,「重定向」兩個網頁,因爲<a>
標籤有target
屬性爲_blank
- 在href
屬性中的URL將在新窗口中打開和當前窗口會顯示其URL中onclick
定義頁處理程序。
通常,點擊鏈接並訪問另一個頁面時,需要在當前窗口中顯示新頁面。在這種情況下,應該刪除target="_blank"
。
爲了發送跟蹤請求並同時顯示新的頁面。有3個解決方案:
解決方案1.在當前頁面,點擊鏈接時,跟蹤發送請求和一個小的時間後,重定向到新的一頁。這一切都發生在JavaScript中,沒有target="_blank"
,沒有URL在href
。
例如:
<a href="javascript:;" onclick="visitPageX()">link</a>
function visitPageX() {
// send Ajax request to the track URL
setTimeout(function() {
location.href = 'http://{pageXURL}';
}, 300);
}
請注意時間間隔(在上面的代碼,它是300ms
)依賴於Web應用程序的網絡環境。如果它太小,則在頁面重定向之前,不會發送HTTP跟蹤請求。如果它太大,設計效果(如微調)可能會有所幫助。使用這個時間間隔是因爲對於跟蹤請求,頁面不需要等待其響應,只是保證發送請求並且一切正常。
解決方案2.當用戶點擊鏈接時,立即去新的一頁。當新頁面打開時,發送HTTP請求進行跟蹤。
例如:
<a href="http://{pageXURL}">link</a>
// JavaScript code in page X, running when page X is opened.
// send Ajax request to the track URL
請注意,這個解決方案是不準確的。如果用戶單擊原始頁面中的鏈接但未能打開頁面X,或頁面X中的跟蹤腳本代碼無法運行,則不會跟蹤此類事件。
解決方案3.當用戶點擊鏈接時,立即去新的一頁。在服務器端程序中,當訪問新頁面X時,發送跟蹤請求(從服務器)。
該解決方案比解決方案2更好,但可能會帶來更多複雜性。
可能重複的[是否可以從Javascript平臺服務器?](http://stackoverflow.com/questions/4282151/is-it-possible-to-ping-a-server-from-javascript) – slevy1