Problem z manipulacją DOM'a JS

Problem z manipulacją DOM'a JS
Sehuszi
  • Rejestracja:około 6 lat
  • Ostatnio:około 5 lat
  • Postów:9
0

Hejka, wie ktoś może dlaczego żadna operacja na DOM'ie tej stronki nie chce zadziałać? Nawet prosty click(). Potrafi ktoś doradzić, czego powinienem użyć, żeby móc manipulować tym DOM'em?

https://streamable.com/n0dx1 tutaj pokazane.

Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Nie rozumiem pytania.
Chcesz manipulować cudzą stroną?
Z poziomu innej strony www czy piszesz sobie jakieś rozszerzenie do przeglądarki albo skrypt do GreaseMonkey?


edytowany 1x, ostatnio: Freja Draco
Sehuszi
Piszę skrypt właśnie do GreaseMonkey oraz do mojego extension'a, żeby zautomatyzować sobie prace, ale jak widać nie działa mi nawet prosty klik.
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Otwórz konsolę przeglądarki.
Wpisz: document.querySelector("#footer-content > div.actions-section > button").click();
Niebieski przycisk Embed zmieni ci się na zielony przyciskCopied.

Prawdopodobnie w opcjach GM źle definiujesz stronę, na której skrypt ma być wykonywany.


edytowany 1x, ostatnio: Freja Draco
Sehuszi
Nie rozumiem, który przycisk Embed. Odpalam konsole na stronie, gdzie chce wywołać skrypt, ale tam nie ma takich klas i id co podałeś.
Sehuszi
Na streamable nie ma z tym problemu, na stronce z FIFA jest problem.
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Strona:
https://www.easports.com/

Polecenie w konsoli:
document.querySelector("body > div.eas-nav.eas-nav--closed.eas-nav--only-global > div > ul > li.eas-nav_item.eas-nav-global_item.eas-nav-global_item--login.eas-nav-global--auth-ready > a > span").click();

Przenosi mnie na stronę logowania.

A jeśli na jakiejś podstronie JS ci nie działa, to podaj adres tej podstrony.


Sehuszi
https://www.easports.com/fifa/ultimate-team/web-app/ jest to apka i nie wiem, czy da się zmieniać tam cokolwiek i klikać w buttony, jeżeli zrobiona jest na jakimś frameworku czy cos
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Na; https://www.easports.com/fifa/ultimate-team/web-app/ wyświetla mi tylko: unsupported browser.

Ale w ogólności prawdopodobnie da się to klikać skryptami, tyle tylko, że nie możesz po prostu użyć click(), ale musisz wygenerować zdarzenie kliknięcia na zadanych współrzędnych. Coś w stylu:

Kopiuj
/* --- mousedown --- */
var e = document.createEvent("MouseEvent");
var obiekt = document.elementFromPoint(x,y);
e.initMouseEvent("mousedown", true, true, window, null, 0, 0, x, y, false, false, false, false, 0, null);
obiekt.dispatchEvent(e);
/* --- /mousedown --- */

/* --- mouseup --- */
var e = document.createEvent("MouseEvent");
var obiekt = document.elementFromPoint(x,y);
e.initMouseEvent("mouseup", true, true, window, null, 0, 0, x, y, false, false, false, false, 0, null);
obiekt.dispatchEvent(e);
/* --- /mouseup --- */

/* --- click --- */
var e = document.createEvent("MouseEvent");
var obiekt = document.elementFromPoint(x,y);
e.initMouseEvent("click", true, true, window, null, 0, 0, x, y, false, false, false, false, 0, null);
obiekt.dispatchEvent(e);  
/* --- /click --- */

Sehuszi
O, fajne fajne dzieki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.