2016-01-14 150 views
1

我有一個頁面www.junk.com,它有一個輸入ID來輸入ID,然後點擊提交。當用戶點擊該按鈕,下面的JavaScript執行:JavaScript重定向連接

var host = ""; 

var Go = { 

onReady: function() { 

    $(document).on("click", ".event-submit", function(event) { 
     event.preventDefault(); 
     var id = $(".event-id").val(); 
     window.location.replace(host + "event/" + id); 
    }); 

    $(".event-id").keypress(function(e) { 
     if (e.which == 13) { 
      var id = $(".event-id").val(); 
      window.location.replace(host + "event/" + id); 
      return false; 
     } 
    }); 

} 

}; 

$(document).ready(Go.onReady); 

這然後將用戶帶到www.junk.com/event/1234

這是好事,這就是我想要的!

在新頁面上,www.junk.com/event/1234有相同的輸入/提交,因此用戶可以對新事件進行相同的精確搜索。問題是,這一次,使用相同的JavaScript,則網址:

www.junk.com/event/event/5678

我如何可以使用完全相同的JavaScript函數的任何想法,但是這將是一致的?這是一個控制器,所以最好將數據(事件ID)以另一種方式傳遞給控制器​​?

謝謝!

+0

你在哪裏設置'host'? – Barmar

+0

似乎'主機'是不是你想要的東西..從哪裏來的? – charlietfl

+0

用更準確的表示更新了問題。當我在本地主機和虛擬主機之間進行連接時,'host'可以讓我輕鬆設置。 – Kenny

回答

1

如果主機始終是相同的,可以使用絕對路徑,而不主持人:window.location.replace("/event/" + id)

+0

啊,只需在前面添加一個'/'就可以了。正如@Goblinlord提到的一些更具體的細節。多謝你們! – Kenny

1

一個djxak提到你應該使用,而不是相對路徑的絕對路徑。當你最終使用「主機」變量時,如果你之後使用了絕對路徑(帶有前導斜槓),你應該確保沒有結尾斜槓。 「/ event /」中的前導斜槓指示它應該轉到/ event /從根開始。如果沒有前導斜槓,則表示它應該轉到相對位置。

asdf.com/abcd/1234/qwerty根將是asdf.com。相對位置將刪除最後一個斜槓後的任何內容(留下asdf.com/abcd/1234/),然後添加相對位置。

實例當前的位置:asdf.com/abcd/1234/qwerty

相對位置:x/y/z

asdf.com/abdc/1234/ + x/y/z Result: asdf.com/abcd/1234/x/y/z

絕對位置:/x/y/z

asdf.com + /x/y/z Result: asdf.com/x/y/z