W chatgpt.com, textarea jest czyszczona po 1 sekundzie od załadowania strony. Przez to skrypt który wkleja tekst poprzez textareaEl.value = "tekst" nie wystarcza.
Zrobiłem z setTimeout 1001 ms, to działa, już przy 1000 ms nie działa. Observery nie ogarniają, ale może źle coś robię? Z opóźnieniem 1001 ms jest to zawodne, bo czasem dzieje się to w dłuższym czasie, więc pomóż znaleźć lepszą metodę?
Następny problem, to że nawet jak wpiszę, to buttonEl.click(); i tak nie zadziała, bo aktywuje się dopiero po wpisaniu czegoś z klawiatury, a wywołanie event keydown itp. też nie działa. Więc pozostaje po wklejeniu poprzez textareaEl.value = "tekst", naciśnięcie jakiegoś znaku na klawiaturze, skasowanie go, i naciśnięcie Enter, żeby wiadomość została wysłana. Też mógłbyś pomóc to rozwiązać?
Dosłownie nie ma metody, żeby stworzyć Search Engine dla Firefox dla ChatGPT. :/
Metoda którą opisałem, jest niedoskonała oraz niedokończona.
Przed tymi dwoma krokami, po prostu pobieram parametr z URL, w formie [https://chatgpt.com/?usq=test](https://chatgpt.com/?usq=test), strona nie kasuje parametru usq po załadowaniu strony, więc spokojnie można z tego skorzystać.
Jak to się uda, to spakuję to w WebExtension, i upublicznię.
@look997: A nie możesz zrobić czegoś takiego, że wklejasz tekst np. dupa i dodajesz onchange na textarea i jak się odpali to odpinasz go i następnie wklejasz prawidłowy tekst? Albo robisz sobie jakiegoś intervala/observera sprawdzającego czy textarea jest pusta i dopiero wtedy wklejasz prawidłowy tekst?
@lobo: onchange sprawdzałem, i nie działa. W ogóle, jak strona czyści texstarea poprzez np. textareaEl.value = "", to tego onchange ani oninput nie wykryje.
Nawet event reset sprawdzałem (bo to siedzi w formularzu), i też nic.
Observer nie wykrywa tego, nawet jak go dałem na body i wyłapywał każdą zmianę w
Interval też nie za dobre, bo na wstępie pole jest puste, potem przez ułamek sekundy widać mój sklejany przez skrypt tekst, i znów puste, to w sumie co ma rozpoznawać?
No wrzucasz swój tekst dupa do textarea, następnie odpalasz interval co np. 50ms i sprawdzasz czy text area pusta jak tak znaczy już tekst został usunięty i możesz dodać ten prawidłowy i wyłączyć intervala
@look997: Mam lepsze rozwiązanie możesz dodać do prototypu textarei zmodyfikowaną metodę setValue
HTMLTextAreaElement.prototype.setValue = function(value) { this.value = value; // tu sobie rób co chcesz :) }; zobacz demo https://jsfiddle.net/e3dpmfg8/2/ oczywiście musisz tam zrobić logikę aby wywołać to tylko raz kiedy potrzebujesz, ale już masz ppunk zaczepu
@lobo: A sprawdziłeś na stronie? Bo ja wcześniej też tak zrobiłem, i nie działało. W sumie ChatGPT mi to podpowiedział. Oczywiście znałem taką metodę wcześniej.
@look997: Nie korzystam u nich z chata więc nie wiem, a oni przypadkiem nie podmieniają całego elementu textarei? Bo to nie powinno tylko wtedy nie zadziałać. Jak tak to wtedy możesz observer dać na wyższym elemencie i sprawdzać.
chatgpt.com
,textarea
jest czyszczona po 1 sekundzie od załadowania strony.Przez to skrypt który wkleja tekst poprzez
textareaEl.value = "tekst"
nie wystarcza.Zrobiłem z
setTimeout
1001 ms, to działa, już przy 1000 ms nie działa.Observery nie ogarniają, ale może źle coś robię?
Z opóźnieniem 1001 ms jest to zawodne, bo czasem dzieje się to w dłuższym czasie, więc pomóż znaleźć lepszą metodę?
Następny problem, to że nawet jak wpiszę, to
buttonEl.click();
i tak nie zadziała, bo aktywuje się dopiero po wpisaniu czegoś z klawiatury, a wywołanie eventkeydown
itp. też nie działa. Więc pozostaje po wklejeniu poprzeztextareaEl.value = "tekst"
, naciśnięcie jakiegoś znaku na klawiaturze, skasowanie go, i naciśnięcie Enter, żeby wiadomość została wysłana.Też mógłbyś pomóc to rozwiązać?
Dosłownie nie ma metody, żeby stworzyć Search Engine dla Firefox dla ChatGPT. :/
Metoda którą opisałem, jest niedoskonała oraz niedokończona.
Przed tymi dwoma krokami, po prostu pobieram parametr z URL, w formie
[https://chatgpt.com/?usq=test](https://chatgpt.com/?usq=test)
, strona nie kasuje parametruusq
po załadowaniu strony, więc spokojnie można z tego skorzystać.Jak to się uda, to spakuję to w WebExtension, i upublicznię.
#frontend #javascript #userscript #skrypt #addons #extensions #dodatki #rozszerzenia #plugin #wtyczki #chatgpt #ai #firefox
onchange
sprawdzałem, i nie działa. W ogóle, jak strona czyści texstarea poprzez np.textareaEl.value = ""
, to tegoonchange
anioninput
nie wykryje.Nawet event
reset
sprawdzałem (bo to siedzi w formularzu), i też nic.Observer nie wykrywa tego, nawet jak go dałem na body i wyłapywał każdą zmianę w
No wrzucasz swój tekst dupa do textarea, następnie odpalasz interval co np. 50ms i sprawdzasz czy text area pusta jak tak znaczy już tekst został usunięty i możesz dodać ten prawidłowy i wyłączyć intervala
HTMLTextAreaElement.prototype.setValue = function(value) {
this.value = value;
// tu sobie rób co chcesz :)
};
zobacz demo https://jsfiddle.net/e3dpmfg8/2/ oczywiście musisz tam zrobić logikę aby wywołać to tylko raz kiedy potrzebujesz, ale już masz ppunk zaczepu
Bo ja wcześniej też tak zrobiłem, i nie działało. W sumie ChatGPT mi to podpowiedział.
Oczywiście znałem taką metodę wcześniej.
@lobo: No robiłem tak i nie wykrywa żeby coś się działo z texarea.