-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcontent.js
34 lines (30 loc) · 999 Bytes
/
content.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
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.action === 'setPrompt') {
setPrompt(request.prompt);
}
});
function setPrompt(prompt) {
const chatGPTPromptBar = document.querySelector('textarea');
if (chatGPTPromptBar) {
chatGPTPromptBar.value = prompt;
chatGPTPromptBar.dispatchEvent(new Event('input', { bubbles: true }));
triggerSendButton();
} else {
const observer = new MutationObserver((mutations) => {
const chatGPTPromptBar = document.querySelector('textarea');
if (chatGPTPromptBar) {
chatGPTPromptBar.value = prompt;
chatGPTPromptBar.dispatchEvent(new Event('input', { bubbles: true }));
triggerSendButton();
observer.disconnect();
}
});
observer.observe(document.body, { childList: true, subtree: true });
}
}
function triggerSendButton() {
const sendButton = document.querySelector('button.absolute');
if (sendButton) {
sendButton.click();
}
}