HOWTO · JavaScript
如何在 JavaScript 中自動點選
使用 window.open() 在另一個瀏覽上下文中開啟連結,或使用 window.location 導覽目前頁面。
本頁內容
「自動點選」可能是指程式執行時開啟連結,也可能是啟用連結本身。若要在另一個瀏覽上下文中開啟目的地,請使用 window.open();若要在目前的瀏覽上下文中導覽,請使用 window.location。這兩種方法都不會模擬錨點點選,也不會執行錨點的點選處理常式;只有在確實需要以程式啟用點選行為時,才呼叫錨點元素的 click() 方法。
在 JavaScript 中使用 window.open() 自動點選
window.open() 會要求瀏覽器在新的或具名的瀏覽上下文中開啟網址。該上下文會以分頁還是視窗呈現,由瀏覽器決定;如果程式發起的要求不符合瀏覽器政策,瀏覽器可能會封鎖它,通常在要求跟隨使用者操作時才會允許。這個方法不會觸發目的地錨點的點選處理常式。
例如,假設頁面上有以下錨點:<a id="docs-link" href="https://example.com/">Documentation</a>。讀取解析後的 href,再將它傳給 window.open():
if (typeof document !== "undefined") {
const link = document.getElementById("docs-link");
if (link) {
window.open(link.href, "_blank", "noopener");
}
}
名稱 _blank 會要求使用獨立的瀏覽上下文,但其實際呈現方式由瀏覽器設定決定,瀏覽器也可能封鎖這項要求。noopener 功能可避免開啟的頁面取得可用的 window.opener 參照。此處的瀏覽器範例未在本文環境中執行;執行時需要包含該錨點的頁面和瀏覽器環境。
在 JavaScript 中使用 window.location 自動點選
若要在目前的瀏覽上下文中導覽至同一個連結,可以將目的地指定給 window.location 或 window.location.href,也可以呼叫 window.location.assign():
if (typeof document !== "undefined") {
const link = document.getElementById("docs-link");
if (link) {
window.location.assign(link.href);
}
}
以上每種方式都會在目前的瀏覽上下文中導覽;它們不會開啟另一個分頁,也不會觸發錨點的點選處理常式。Window.location 是一個會傳回 Location 物件的屬性;該物件提供目前網址和導覽方法。在瀏覽器指令碼中,通常也可以直接使用全域名稱 location;寫成 window.location 則能明確指出它所屬的物件。
如需 API 詳細資訊,請參閱 MDN 的 Window.location 屬性文件。若要啟用錨點元素及其點選行為,請使用該元素的 click() 方法;以程式啟用點選不代表真實的使用者操作,且仍受瀏覽器行為影響。