Diskuze: Spuštění skriptu na víc webových stránkách
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 14 zpráv z 14.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Skoro sa bojím spýtať ... ty sa snažíš spustiť svoj skript na cudzích stránkach?
Není lepší si udělat seznam stránek a třeba cronem je procházet a "ukradnout" co chceš?
Proč hned ukradnout? Odkazy jsou volně dostupné a já jen nechci všechny ručně opisovat. Toho crona zkusím, děkuji.
Je to snad nelegální?
var y = document.getElementsByClassName("xxxxx");
console.log(y[0].href);
Tohle je celý skript, který chci vložit.
Na těch stránkách jsou ty odkazy volně dostupné.
Nie, to čo ty chceš dosiahnuť nie je nelegálne. Len si sa zle vyjadril. A zle pochopil problematiku, lebo to urobiť ide, ale (našťastie) nie tak, ako sa o to pokúšaš.
Najjednoduchší spôsob je stiahnuť si ajaxom obsah prehľadávanej stránky do premennej a až nad tou premennou hľadať príslušný tag. Odporúčam použiť jQuery. Napríklad takto nejako:
const parseResponse = resp => {
const matchedElms = $(resp).find('.hladanaClass')
console.log(matchedElms)
}
$
.get('https://nejaka.stranka')
.then(parseResponse)
Istý si nie som, jQuery som už dlhšie nepoužil, ale princíp sedí. Nemôžeš proste vo svojom skripte priamo rátať s pristupom do kódu inej stránky, veď to je bezpečnostný nezmysel, ale musíš si obsah stránky najskôr stiahnuť, tváriť sa ako prehliadač. Problém je, že toto nebude fungovať na SPA/PWA apky, a tých je čoraz viac. V takom prípade si danú stránku/aplikáciu musíš najskôr stiahnuť ako je, aj so skriptami, napríklad do Node, potom ju s Node vyrenderovať, napríklad s PhantomJS, a až potom môžeš traverzovať jej výsledný DOM model.
No a ak nevieš o čom hovorím, tak to proste ani neskúšaj a radšej si
vygoogli nejakú hotovú apku na tento účel 
Myslím, že AJAXem to vůbec nepůjde. Pokud to nejsou jeho weby, padne to na Cross Origin Policy.
Pokud to obě stránky explicitně nepovolí, nelze se z jedné domény
jakkoliv dotknout dat z jiné domény.
Na toto je JS zkrátka špatný jazyk (minimálně u klienta). Na toto je třeba
spustit něco, co bude simulovat prohlížeč, takže nějaká serverová
aplikace napsaná v čemkoliv. Pokud už máš napsaný složitý kód v JS a
nechceš ho přepisovat do jiného jazyka, asi by to šlo nějak zprovoznit v
node.js.
Psal tam 2 řádky 
Šlo by to relativně jednoduše udělat v PHPčku. Přes file_get_contents si stáhnout stránku a přes DOMDocument najít co potřebuje.
Nebylo to myšleno špatně, spíš jen definice toho jak získat jeho data.
A. Ajax lze pouzit na localhost. Musel by si nainstalovat a spustit server, treba php. Tam stranku stahnout pres file_get_contents. Po te se stane text lokalni a na tvou stranku ajax lze. (viz Vitek)
B. S temi doplnky to nejspis pujde taky. Nepouzivam, neporadim. Ale pro hru Travian pouzivaji ruzne js doplnky. Takze v googlu bude spousta tipu, jake doplnky.
C. Existuji programy, ktere stahuji stranky na disk do hloubky X odkazu. Myslim, ze tam jde v nekterych zadat, ze z toho vycuca jen odkazy.
D. Da se udelat js editor, div content=editable, tusim, kam je mozne udela copy-paste kod a on by nekde delal seznam odkazu. Bud na onclick nebo onpaste. Neni to tak automaticke jako [A], ale dalo by se.
E. Existuje doplnek Firefox Link checker, ktery jsem pouzival pro testovani
funkcnosti odkazu na strance. Prosel stranku, zkusil kazdy odkaz a pak obarvil
zelene, cervene. Ale bylo by to asi slozitejsi nastudovat si kod a upravit 
F. [B] Kdysi jsem na chatu xko.cz si udelal doplnek, ktery se spoustel ze
zalozek a pridaval do stranky ruzny kod. Nevim, zda by to dnes prohlizece
dovolili spoustet. Jmenuje se to BookMarkLet. Funguje to tak, ze na svuj web
nahrajes stranku. Pridas do zalozek (upravis url). Pak otevres cizi. Kliknes na
Zalozky - zvollis tu tvou stranku. A ono to nad tou strankou spusti nejaky
kod.
https://www.jakpsatweb.cz/…marklet.html
Edit: Ok, tak jde to i primo. Ale ja to resil tak, ze jsem kod dal pod url a pak
jsem to spoustel z te url pres eval(). Protoze jsem to chtel sdilet s ostatnimi.
Pridaval jsem si k chatu vlastni listu se smajliky. Tam bylo omezeni 10, ale
pouzivat sly vsechny pres cislo. Takze jsem mel treba 100.
Ja by som to riešil cez Node.js package Puppeteer, ktorý ti dáva prístup ku Chromium-u cez Javascript API - https://www.npmjs.com/…ge/puppeteer.
Zobrazeno 14 zpráv z 14.
