Selection: direction 屬性

基準線 2025
新推出

自 2025 年 5 月起,此功能適用於最新的裝置和瀏覽器版本。此功能可能不適用於較舊的裝置或瀏覽器。

directionSelection 介面的一個只讀屬性,它是一個字串,用於提供當前選中文字的方向。

該值由使用者選擇選區邊界點的順序決定。例如,使用者可以透過單擊起始邊界點、拖動游標,然後在結束邊界點釋放滑鼠來完成選區。如果結束邊界點在文件中的位置晚於起始點,則方向為 "forwards"(前進);如果結束點在文件中的位置早於起始點,則方向為 "backwards"(後退)。如果使用者沒有隱含方向(例如,透過雙擊單詞或元素進行選區,或者選區是透過程式設計方式實現的),則值為 "directionless"(無方向)。

如果選區的範圍發生變異(例如,使用 Range.selectNode() 等方法),方向不會改變。

描述當前選區型別的字串。可能的值包括:

backward

選區是後退的。

forward

選區是前進的。

none

沒有進行選區,或者選區是無方向的。

示例

此示例允許您透過記錄段落中文本當前選區方向來測試 direction 屬性的工作方式。

HTML

HTML 僅顯示一個包含一些可選文字的段落元素。

html
<p id="text-box">
  Select text in this paragraph to see the selection direction.
</p>

請注意,還有一個“隱藏”的日誌框(以及相關的程式碼),遵循“顯示單個條目日誌”指南中編寫即時樣本的模式。

JavaScript

程式碼會檢查 direction 屬性是否已定義,如果已定義,則會新增一個 selectionchange 事件的監聽器,該監聽器會獲取當前選區並記錄其方向。如果屬性不受支援,程式碼將記錄這一事實並隱藏用於選區的文字。

js
const input = document.getElementById("text-box");

if ("direction" in Selection.prototype) {
  document.addEventListener("selectionchange", () => {
    const selection = window.getSelection();
    log(`Selection direction: ${selection.direction}`);
  });
} else {
  log("direction property not defined");
  input.hidden = true;
}

結果

如果屬性受支援,請嘗試透過雙擊、拖動選區然後釋放滑鼠(在不同方向上)來測試。

規範

規範
Selection API
# dom-selection-direction

瀏覽器相容性

另見