summaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
Diffstat (limited to 'assets')
-rw-r--r--assets/js/main.js11
1 files changed, 10 insertions, 1 deletions
diff --git a/assets/js/main.js b/assets/js/main.js
index 889c1f0..644e2b6 100644
--- a/assets/js/main.js
+++ b/assets/js/main.js
@@ -56,11 +56,20 @@ $(function () {
const regex = new RegExp(`(${escapedKeyword})`, 'gi');
// 递归遍历并高亮文本节点
+ const escapeHTML = str => str.replace(/[&<>"']/g,
+ tag => ({
+ '&': '&amp;',
+ '<': '&lt;',
+ '>': '&gt;',
+ '"': '&quot;',
+ "'": '&#39;'
+ }[tag] || tag));
function highlightTextNodes(element) {
$(element).contents().each(function () {
if (this.nodeType === Node.TEXT_NODE) {
const $this = $(this);
- const text = $this.text();
+ const text = escapeHTML($this.text());
+
// 使用正则替换并保留原始大小写
if (regex.test(text)) {
const replaced = text.replace(regex, '<mark>$1</mark>');