location 的基本認識可以知道一些方法,下方筆記這次特訓的案例。
使用 JavaScript 語法,操控點擊後,能夠轉址到對應網站
有兩個按鈕,分別帶入兩個不同的網址,並用 location.href 的方式跳至連結,這之前做旅館訂房網頁時有使用過。
HTML 架構
1 2
| <button class="btn btn_google" id="btnGoogle" title="Google">Google</button> <button class="btn btn_yahoo" id="btnYahoo" title="Yahoo">Yahoo</button>
|
JavaScript 行為
分別綁定兩個按鈕,並給予跳轉連結的方法,使用點擊事件完成。
1 2 3 4 5 6 7 8 9 10 11 12
| let btnGoogle = document.querySelector("#btnGoogle"); let btnYahoo = document.querySelector("#btnYahoo");
function googleLink() { location.href = "https://www.google.com.tw/"; }
function yahooLink() { location.href = "https://tw.yahoo.com/"; } btnGoogle.addEventListener("click", googleLink); btnYahoo.addEventListener("click", yahooLink);
|
有兩顆按鈕,是部落格推薦連結,請抓取 data-id 的值後進行轉址
data-set
的單元後續會介紹到,這邊先筆記一下用法。
限制條件如下:
- 點擊 Tom 時,網址為 https://www.hexschool.com/?recommend=tom
- 點擊 John 時,網址為 https://www.hexschool.com/?recommend=John
HTML 兩顆按鈕
1 2 3 4 5 6
| <button class="google jq-google" title="Tom 推薦六角學院" data-id="tom"> Tom 推薦六角學院 </button> <button class="yahoo jq-yahoo" title="John 推薦六角學院" data-id="John"> John 推薦六角學院 </button>
|
JavaScript 行為
這裡比較特別的是要取得屬性為 data-id。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| let jqGoogle = document.querySelector(".jq-google"); let jqYahoo = document.querySelector(".jq-yahoo");
let hexSchoolUrl = "https://www.hexschool.com/";
let googleId = jqGoogle.getAttribute("data-id"); let yahooId = jqYahoo.getAttribute("data-id");
function tomLink() { location.href = `${hexSchoolUrl}?recommend=${googleId}`; } jqGoogle.addEventListener("click", tomLink);
function johnLink() { location.href = `${hexSchoolUrl}?recommend=${yahooId}`; } jqYahoo.addEventListener("click", johnLink);
|
按鈕方法雷同,就不再贅述。
JavaScript 取得參數
這裡使用到 pathname 取得當前網址路徑的方法,下方為取得單一與多個的寫法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| let setSingleParamUrl = document.querySelector("#singleParams"); let setMultiParamUrl = document.querySelector("#multiParams");
function singleParams() { location.href = location.pathname + "?recommend=userName"; } setSingleParamUrl.addEventListener("click", singleParams);
function multiParams() { location.href = location.pathname + "?recommend=userName¶m2=88¶m3=abc"; } setMultiParamUrl.addEventListener("click", multiParams);
|