」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 JavaScript 高效檢測文字中點擊的單字?

如何使用 JavaScript 高效檢測文字中點擊的單字?

發佈於2024-11-11
瀏覽:156

How to Efficiently Detect Words Clicked on in Text with JavaScript?

使用JavaScript 檢測文本中點擊的單字

建立允許使用者透過點擊來選擇單字的JavaScript 腳本時,問題出現了:如何才能高效、優雅地實現這一點?

使用類別解析的詳細方法

一種常見但乏味的方法涉及解析整個HTML,將每個單字分割為空格,並將每個單字包裝在 元素中。然後加入一個事件監聽器來偵測對詞類的點擊,透過$(this).innerHTML取得點擊的詞。雖然這種方法有效,但其性能和美觀性還有很多不足之處。

無需類解析的最佳化解決方案

為了更有效率、更優雅的解決方案,請考慮以下因素:

第1 步:擷取選擇

使用window.getSelection() 擷取使用者的選擇。

第 2 步:識別單字邊界

迭代選擇範圍以確定點擊的單字的起點和終點,避免空格。

第 3 步:檢索單擊的單字

將選擇範圍內辨識出的字元組合起來形成單擊的單字。

範例實作

以下JavaScript 程式碼提供了此解決方案的實際實作:

$(".clickable").click(function (e) {
  s = window.getSelection();
  var range = s.getRangeAt(0);
  var node = s.anchorNode;

  // Find starting point
  while (range.toString().indexOf(' ') != 0) {
    range.setStart(node, (range.startOffset - 1));
  }
  range.setStart(node, range.startOffset   1);

  // Find ending point
  do {
    range.setEnd(node, range.endOffset   1);
  } while (
    range.toString().indexOf(' ') == -1 &&
    range.toString().trim() != ''
  );

  // Alert result
  var str = range.toString().trim();
  alert(str);
});
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3