-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathsource.js
36 lines (36 loc) · 1.39 KB
/
source.js
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
// Repeat message n if #n# is at the end of the string
document.addEventListener('click', () => {
let msg = '';
let msgBox = document.querySelectorAll("[contenteditable='true']")[1];
msgBox.addEventListener("keyup", event => {
if (event.keyCode == 13 && msg.search(/#\d+#$/) != -1) {
let [message, count] = msg.split(/#(\d+)#$/);
count = parseInt(count);
(async () => {
while (count--) {
await new Promise((resolve) => {
msgBox.dispatchEvent(new InputEvent("beforeinput", {
inputType: "insertText",
data: message,
bubbles: true,
cancelable: true
}));
resolve();
});
msgBox.dispatchEvent(
new KeyboardEvent('keydown', {
key: "Enter",
code: "Enter",
which: 13,
keyCode: 13,
bubbles: true,
view: window
})
)
await new Promise(resolve => setTimeout(resolve, 10));
}
})();
}
msg = msgBox.innerText;
});
});