Переглянути джерело

When highlighting operation descriptions in search results, HTML tags are now ignored.

n1474335 7 роки тому
батько
коміт
b5eb44af9f
1 змінених файлів з 9 додано та 0 видалено
  1. 9 0
      src/web/HTMLOperation.js

+ 9 - 0
src/web/HTMLOperation.js

@@ -110,6 +110,15 @@ HTMLOperation.prototype.highlightSearchString = function(searchStr, namePos, des
     }
     }
 
 
     if (this.description && descPos >= 0) {
     if (this.description && descPos >= 0) {
+        // Find HTML tag offsets
+        const re = /<[^>]+>/g;
+        let match;
+        while ((match = re.exec(this.description))) {
+            // If the search string occurs within an HTML tag, return without highlighting it.
+            if (descPos >= match.index && descPos <= (match.index + match[0].length))
+                return;
+        }
+
         this.description = this.description.slice(0, descPos) + "<b><u>" +
         this.description = this.description.slice(0, descPos) + "<b><u>" +
             this.description.slice(descPos, descPos + searchStr.length) + "</u></b>" +
             this.description.slice(descPos, descPos + searchStr.length) + "</u></b>" +
             this.description.slice(descPos + searchStr.length);
             this.description.slice(descPos + searchStr.length);