-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpopup.js
More file actions
77 lines (60 loc) · 2.51 KB
/
popup.js
File metadata and controls
77 lines (60 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// 获取设置元素
const enabledToggle = document.getElementById('enabled');
const boldPercentageInput = document.getElementById('boldPercentage');
const boldPercentageValue = document.getElementById('boldPercentageValue');
const minWordLengthInput = document.getElementById('minWordLength');
const minWordLengthValue = document.getElementById('minWordLengthValue');
const previewText = document.getElementById('previewText');
// 更新预览文本
function updatePreview() {
const text = "The quick brown fox jumps over the lazy dog.";
const boldPercentage = parseFloat(boldPercentageInput.value);
const minWordLength = parseInt(minWordLengthInput.value);
const bionicText = text.replace(/\b[a-zA-Z]+\b/g, word => {
if (word.length < minWordLength) return word;
const boldLength = Math.ceil(word.length * boldPercentage);
const boldPart = word.slice(0, boldLength);
const normalPart = word.slice(boldLength);
return `<strong>${boldPart}</strong>${normalPart}`;
});
previewText.innerHTML = enabledToggle.checked ? bionicText : text;
}
// 保存设置
function saveSettings() {
const settings = {
enabled: enabledToggle.checked,
boldPercentage: parseFloat(boldPercentageInput.value),
minWordLength: parseInt(minWordLengthInput.value)
};
chrome.storage.sync.set(settings);
updatePreview();
}
// 加载设置
async function loadSettings() {
const defaults = {
enabled: true,
boldPercentage: 0.5,
minWordLength: 3
};
const settings = await chrome.storage.sync.get(defaults);
enabledToggle.checked = settings.enabled;
boldPercentageInput.value = settings.boldPercentage;
boldPercentageValue.textContent = `${Math.round(settings.boldPercentage * 100)}%`;
minWordLengthInput.value = settings.minWordLength;
minWordLengthValue.textContent = `${settings.minWordLength} characters`;
updatePreview();
}
// 添加事件监听器
enabledToggle.addEventListener('change', saveSettings);
boldPercentageInput.addEventListener('input', () => {
boldPercentageValue.textContent = `${Math.round(boldPercentageInput.value * 100)}%`;
updatePreview();
});
boldPercentageInput.addEventListener('change', saveSettings);
minWordLengthInput.addEventListener('input', () => {
minWordLengthValue.textContent = `${minWordLengthInput.value} characters`;
updatePreview();
});
minWordLengthInput.addEventListener('change', saveSettings);
// 初始化
loadSettings();