Hirdetés
- Asszociációs játék. :)
- Egy korszak vége
- Drive! - Az utolsó gurulás idén a Quadrifoglio-val
- ATI vs. NVIDIA kezdetektől napjainkig II.
- Digitális Állampolgárság Program
- Karácsonyi pofára esés
- eBay-es kütyük kis pénzért
- "A homoszexualitás természetellenes" 😠
- Elektromos rásegítésű kerékpárok
- Kellemes Karácsonyi Ünnepeket!
-
LOGOUT.hu
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
hiperFizikus
aktív tag
https://www.w3schools.com/js/js_string_templates.asp
Ezen a linken van az a két idézőjel, amivel soremeléses sztringet lehet használni a JS kódban .Az a hirtelen ötletem támadt, hogy ha a html lapon a JavaScript tagban meghívom a html laphoz tartozó mappában lévő .js kiterjesztésű fájlokat, amiben ez a soremeléses idézőjeles nagyméretű sztring van, akkor azt programnak is használhatom . Vagyis vele nagymennyiségű adatot vihetek be a JS programba .
Mi erről a véleményetek ?
Hogyan csináljam, hogy hatékony legyen ?
A gázt is és a féket is egyszerre nyomni nem menő dolog !
-
polymorphin
csendes tag
válasz lanszelot #9293 üzenetére
A video pont arrol szol hogy mi a kulonbseg.
A Complete Guide to Data Attributes | CSS-Tricks - CSS-Tricks#9297
SpeechSynthesis: voiceschanged event - Web APIs | MDN (mozilla.org) -
lanszelot
addikt
Hello,
Nem az kell, az csak egy Read Only. Tehát azzal nem lehet felülírni.
Ez kell nekem, csak nem tudok rájönni, hogy miért nem kéri ki lap betöltésnél, a gombra pedig működik.
Egyszerűen nem tudom kikéretni a tömböt oldal betöltéskor. /gombra nyomáskor meg kikéri/
Mit rontok el?Vigyázz, ez nem működik codepen -ben, kell készítened egy html, és egy js filet, bemásolni a codepen-ből, és live server-en futtatni.
-
Bzozoo
tag
válasz lanszelot #9296 üzenetére
Szerintem ez kell neked https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesisUtterance/voice
-
lanszelot
addikt
Hello
Hogyan tudom a hangfelolvasó személyt megváltoztatni?
Férfi olvassa fel, és nőt szeretnék.
Ezzel meg tudom kapni a teljes listát, és van benne nő, de a férfi a default.
"Microsoft Szabolcs - Hungarian (Hungary)" - default
"Microsoft Noemi Online (Natural) - Hungarian (Hungary)" - őt szeretném -
Sziasztok!
Megtanultam, tudatlan láma vagyok, de nem baj. Elakadtam. De már megoldottam.
Akkor mégis minek írok ide? Hogy elmeséljem, mi történt, mert ilyennel még nem találkoztam soha korábban.Adott egy feladat, kliens oldali móka, gombok, onclink, JS. Nem működnek.
Azt látom, hogy a console problémát jelez az egyik script esetében. De a többi sem megy, sőt, ami meglepő: Az adott funkció nincs definiálva. Ez a válasz mindenre.Megnéztem JSFiddle alatt, ahol ugyan ezt tapasztaltam (oh, mellékesen: szerverről dolgozom). Mondom legyen, vegyük ki a hibás script importot. ==> Láss csodát, minden működik.
Na ilyen még nem volt. Több JS include esetén ha egy hibás, leblokkolja az összes többit. Holott megjegyzem, a hibásat hívta be utoljára, így a
xy is not definied
szerintem nem a leghelyesebb rendszerüzenet.Korábban is volt már ilyen, hogy betöltés közben összeveszett a Chrome az egyik script-el. De akkor még nem tiltotta le az összes többit...
No megyek tanulni, hátha egyszer megértem
[ Szerkesztve ]
But who is watching the guardians?
-
lanszelot
addikt
Hello,
Erről tudna valaki valami átfogó magyarázatot valahol, hogy mi a kettő között a különbség.
Illetve, hogy van az a data selector pontosan...stb
Video lenne a legjobb, mert ezt, és ilyeneket találtam, csak ez így nekem nem világos.
Az a gondom, hogy teljes, működő példába kellene, hogy ez így, ez meg így, ez a különbség..stb -
Bzozoo
tag
válasz hiperFizikus #9289 üzenetére
Én kíváncsi lennék rá. Főleg a számmá konvertálós kérdés után 😃
[ Szerkesztve ]
-
hiperFizikus
aktív tag
válasz hiperFizikus #9289 üzenetére
50 db ritkás képernyő oldal méretű: 1560 soros
A gázt is és a féket is egyszerre nyomni nem menő dolog !
-
hiperFizikus
aktív tag
Igen, és a funkció alprogramja a funkció paraméterlistája nélkül mennek, vagy legalábbis elég jól mennek .
Van amikor váratlanul finomítani kell a kódját, ilyenkor látszólag nem haladok vele, pedig a szoftvere változik közben . Gyakorlatilag nem nehéz, de borzasztón kellemetlen órák hosszat csak klampírozni mellette .
Aztán ahogyan programozom le, úgy közben igazítani kell az eredeti programnyelv tervén, hogy megfeleljen a leprogramozás szoftvere természetének . Tehát hiába van a meg a programnyelvem terve, amíg nincs leprogramozva addig változhat kicsit .
Gondolom félkész állapotban nem akarjátok látni, már csak azért sem mert sokat kellene hozzá magyarázkodnom . De ha kéritek felteszem a netre, csak így olyan is !
A gázt is és a féket is egyszerre nyomni nem menő dolog !
-
Bzozoo
tag
válasz hiperFizikus #9284 üzenetére
De azért már JavaScript nyelvben programozol egy másik nyelvet(?)
-
Zedz
addikt
válasz hiperFizikus #9286 üzenetére
Nem.
-
hiperFizikus
aktív tag
válasz hiperFizikus #9284 üzenetére
A gázt is és a féket is egyszerre nyomni nem menő dolog !
-
Zedz
addikt
válasz hiperFizikus #9284 üzenetére
Részletesen itt.
Röviden:
parseInt('123')
-
hiperFizikus
aktív tag
https://www.w3schools.com/js/tryit.asp?filename=tryjs_number_tostring
(123).toString()
Ez a számot -> sztringé konvertálja .
De nem találom ami fordítva a sztringet -> számmá alakít, melyik ez ?
A gázt is és a féket is egyszerre nyomni nem menő dolog !
-
sztanozs
veterán
válasz hiperFizikus #9280 üzenetére
Talán nem regexet kellene használnod nyelvfeldolgozásra...
Amúgy az első azért nem megy, mert a JS-nek meg duplázni kell a backslash-t hogy magát escape-elje:
alert( 'abc(def)ghijku'.replace( new RegExp( '\\(' , 'g') , '23' ) )
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
hiperFizikus
aktív tag
válasz sztanozs #9279 üzenetére
alert( 'abc(def)ghijku'.replace( new RegExp( '\(' , 'g') , '23' ) )
alert( 'abc(def)ghijku'.replace( new RegExp( '\[' , 'g') , '23' ) )
nem mennekalert( 'abc(def)ghijku'.replace( new RegExp( '[(]' , 'g') , '23' ) )
alert( 'abc(def)ghijku'.replace( new RegExp( '[[]' , 'g') , '23' ) )
igen, mennekNekem nem baj hogy az a 2 nem megy, mert a másik kettőt használhatom, és nem vagyok finnyás . Evvel a kis mérető megoldással óriási lökést adtál a fordítómmnak, mert képzeld el, hogy a programozási nyelvem a szokásos ( ) zárójelek rengetegét engedi meg, és akkor hogy nézne ki pótlólagos karakterekkel elcsúfítva !
Vagyis dolgozom rajt, csak a listákon{tömbökön} bukhatok még el .
A gázt is és a féket is egyszerre nyomni nem menő dolog !
-
sztanozs
veterán
válasz hiperFizikus #9276 üzenetére
( és [ spec karakterek és külön kezelni kell, vagy [(] és [[] vagy \( és \[.
Nem bonyolult, csak utána kéne olvasni kicsit.JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
hiperFizikus
aktív tag
alert( 'abc(def)ghijku'.replace( new RegExp( '(' , 'g') , '23' ) )
alert( 'abc(def)ghijku'.replace( new RegExp( '(' , 'g') , '§(' ) )
alert( 'abc(def)ghijku'.replace( new RegExp( '[' , 'g') , '23' ) )
alert( 'abc(def)ghijku'.replace( new RegExp( '[' , 'g') , '§[' ) )
Nem megy, pedig kéne neki ! Már mindent megpróbáltam:
A jobb kezemmel megfogtam a bal fülemet és kinyújtottam a nyelvemet, hideg vizes zsebkendőt tetem a nyakamra, ...stb. és mind hiába, nem megy .A
new RegExp
nem az én érdemem, hanem nagyon régen ti segítettek ki vele . Akkor is volt valami probléma a ( jel miatt, valamit javasoltatok is, de a régi fájljaim rengetegében nem találom, nincs is esélyem megtalálni .Nagyon kellene az új programnyelvem fordítójához, kérlek titeket segítsetek ki evvel !
A gázt is és a féket is egyszerre nyomni nem menő dolog !
-
-
crocy
tag
Sziasztok!
Sajnos nem találok megoldást a neten pure JS alkalmazásával a következő feladatra:
Adott egy DIV, melynek nincs Class-a, de van ID-je.
Ha le akarom kérdezni, hogy hány pixeles a mérete az adott DIV-nek, csak Class-ra találok megoldásokat, ID-re nem. Viszont nekem most az kellene.Megoldható egyáltalán?
Előre is köszönöm a válaszokat!
-
válasz hiperFizikus #9268 üzenetére
"és veled mint szakival nem fogok ellenkezni"
Itt senki sem szaki. Csak mindenki annak hiszi magát
But who is watching the guardians?
-
Bzozoo
tag
válasz hiperFizikus #6730 üzenetére
"Mit tanácsoltok, hogy a programocskámat sokszorosítás ellen hogyan védjem"
Bocs a kései válaszért. Zárd el egy szekrényben
-
hiperFizikus
aktív tag
Elolvastam a linked első 2 percét és remek a linked, igazi különlegesség .
Sajnálom, hogy "tragédia ..." , de JS-en szeretném leprogramozni, és veled mint szakival nem fogok ellenkezni .A linked kb. 1 órás, akkor most bele fogok merülni a linked tanulmányozásába, addig béként hagylak titeket, de be-be nézek azért az oldalatokra, hogy ki mit írt bele .
A gázt is és a féket is egyszerre nyomni nem menő dolog !
-
disy68
aktív tag
válasz hiperFizikus #9266 üzenetére
tragédia ez a komment egy szakmai topikban komolyan
de legyen, feltételezzük, hogy csak tréfálkozol, akkor itt van egy kis ötletcsomag a "programnyelvedhez": https://www.youtube.com/watch?v=vcFBwt1nu2U
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
hiperFizikus
aktív tag
Sziasztok ! - bocsánat, hogy rátok török .
Kitaláltam egy új programozási nyelvet, amit JavaScripten szeretnék először leprogramozni .
Ebben két dolog akadályoz:
1. Az én gépem valami UTF-8 vagy mit használ, ami nektek nem tetszik
2. A JavaScript -ben a Listák{tömbök}közt valami áthatás van, mert átvisszi a kéretlen értékeket... meg ilyesmi.
Nyitnák neki itt egy topikot, de nem szeretném, hogy az ügyetlenségem miatt hamarosan meg is szüntessék . Meg ha már felvetetem, akkor mi legyen neki bevezetőképen, szerintetek ? Szeretném ha minőségi lenne .
A gázt is és a féket is egyszerre nyomni nem menő dolog !
-
Taci
addikt
Sziasztok!
Próbálnék egy olyan megoldást csinálni, hogyha eredeti forrásból (CDN) nem sikerül behúzni a kívánt .js fájlt, akkor használja saját szerverről.
Többféle megoldással is próbálkoztam, de egyedül csak a
document.write
működik, a többi sajnos nem.JSFiddle: https://jsfiddle.net/942fgodv/
(Elsőnek egy Bootstrap JS-t töltenék a példa kedvéért, azt direkt elrontom, aztán jön a fallback, ami a példában egy custom alert JS, szintén CDN-ről.)Tehát az elején szimulálom a CDN elérhetetlenségét, elrontom a linket (1-est írok elé).
Aztán próbáltam egy olyan megoldást, hogy a <script> tagbe írtam egy onerror-lépést, de sajnos nem működik. (Fura, CSS-nél működik.)
Aztán jön a
document.write
, ami szépen működik, fel is jön az custom alert, tehát betöltött a 2. JS, és így a custom funkciót is tudta használni.
Eredetileg ezzel a megoldással készítettem el az oldalam ezen részét, viszont a Lightroom lepontozza, azt írja, ne használjam, mert lassíthatja a lassú kapcsolattal rendelkezőknél a betöltést. Ezért keresek más megoldást.Harmadik megoldási kísérletem pedig az, hogy document.head.appendChild()-dal hozzáadom a feltöltött script taget.
Ez szépen hozzá is adja, betöltés után látom, hogy jó helyen van (a custom funkció hívása előtt), viszont gondolom, a HTML feldolgozása nem várja meg, így hamarabb jut a funkcióhíváshoz, minthogy betöltené a hozzá szükséges JS-t, ezért le sem fut.Miért megy document.write-tal, és miért nem appendChild-dal? (Bár gondolom, azért nem, mert aszinkronban tölti le, míg a document.write blokkolja a további feldolgozást addig. És talán pont ezért nem javasolt a használata.)
Tudtok erre a problémára jó megoldást?
(Nem csak a CDN elérhető / nem elérhető helyzetre kell, másra is szeretném használni.)Köszönöm.
-
-
válasz martonx #9257 üzenetére
Te nagyon kevered a szezont a fazonnal... A matematikus példádnak se eleje, se vége. Még ha azt írtad volna, hogy a matematikus arra kérdez rá, milyen egyenlettel lehet kiszámolni a Pi 5678. értékét, még elfogadnám a hülyeségedet.
De te konkrétan (hogy hasonló példával éljek) leminősítesz egy autószerelőt, amiért betolod hozzájuk a csoda BMW-det és nincs polcon olyan speciális kulcsuk, amivel ki tudnák nyitni a csomagtartódat...
Vedd már észre magad, fórumok önjelölt császára!But who is watching the guardians?
-
sztanozs
veterán
Nem néz szerintem senki hülyének, de pl az alábbi google keresés összes találata releváns, már az első oldalon is. Konkrétan ez volt az első kereső-kifejezés, amit beírtam:
https://www.google.com/search?q=get+dom+item+size+by+classJOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
-
-
válasz everest140 #9251 üzenetére
Persze, hogy működik ez lett végül a megoldás. Először (még a kérdés feltétele előtt) azzal a módszerrel próbálkoztam, amit martonx írt, de nem jött be.
Viszont az látható ebből, hogy a vérprofi programozóknak (mint martonx) kötelező elbonyolítani a kódokat, máskülönben nem mondhatná magát programozónak.
Én pedig mindig a legegyszerűbb, legrövidebb, legkevesebb hardvert igénylő megoldásokra törekszem. Egyesek szemében ezért nem vagyok és nem is leszek programozó, legfeljebb valami kezdő bepróbálkozó...But who is watching the guardians?
-
martonx
veterán
Nézd, a misztikus módszer, amit javasoltam, hogy id helyett class-al hogy tudsz js-el hivatkozni egy div-re, működik: JSFiddle - Code Playground
Tudom hihetetlen, hogy ilyen félelmetesen bonyolult fekete mágiák vannak js-ben. Sebaj, fel a fejjel, jó tanulást!A példa kódot igyekeztem minél egyszerűbben, olvasmányosan megírni, hogy még azok is megértsék, akik profik, de eddig csak a js speciálisan miniatűr szeletét használták. Remélem nem lett átláthatatlanul bonyolult.
[ Szerkesztve ]
Én kérek elnézést!
-
-
válasz martonx #9246 üzenetére
Nos azért, mert valaki nem ismeri a JS 100%-át, még nem ledegradálandó! Hidd el, elég régóta foglalkozom vele és kimondottan sok programot írtam már meg különböző feladatokra tiszta JS használatával, így attól, hogy nem vagyok profi, még nem leszek kezdő sem!
Ha egy programnyelvnek vannak olyan részei, amit az ember sosem használt korábban, miért kéne hülyének nézni csak azért mert most arra lenne szüksége és nem tudja???Nem azért tettem fel a kérdést, mert hülye lennék. Sőt! Amit te írtál (pontosabban gondolom amit írni akartál, mert még ezt sem sikerült helyesen) próbáltam, de nem adja vissza az értéket! Ezért gyanakodtam arra, hogy esetleg nem jó a megoldásom!
edari: Köszönöm.
[ Szerkesztve ]
But who is watching the guardians?
-
Sziasztok!
Sajnos nem találok megoldást a neten pure JS alkalmazásával a következő feladatra:
Adott egy DIV, melynek nincs ID-je, de van Class-a.
Ha le akarom kérdezni, hogy hány pixeles a mérete az adott DIV-nek, csak ID-re találok megoldásokat, Class-ra nem. Viszont nekem most az kellene.Megoldható egyáltalán?
Előre is köszönöm a válaszokat!
But who is watching the guardians?
-
-
Sziasztok!
Lehet, furcsa a kérdésem, de fontos. Adott egy site, amiben van egy
iframe
. Aziframe
behív egy másik oldalt.
Kérdés az, hogy a két oldal egymással tud-e kommunikálni?Konkrétan az lenne a cél, hogy a behívott oldal információt közöljön az őt behívó oldallal, akár csak úgy, hogy van benne egy azonosítóval ellátott DIV, amit a behívó le tud esetleg kérdezni. Ez megoldható?
Előre is köszönöm a válaszokat!
But who is watching the guardians?
-
Taci
addikt
Sziasztok!
Tudjátok esetleg, hogy a
navigator.share
használatával hogyan lehet a szövegtörzsbe (text paraméter) kattintható linket elhelyezni?Mobilon megosztva persze szépen megy (mert az ha linket lát, alakít), viszont Windows alatt ha a Posta alkalmazással osztom meg, akkor csak az url paraméterhez helyezett link "él", máshol nem.
Ez az alap:
https://codepen.io/j471n/pen/gOxgxedDe ha egy url-t írok be a text-hez, akkor nem lesz aktív (kattintható). Pl.:
19. sor:webShareAPI("header", "www.google.com", "www.url.com")
Csak ami az url paraméterhez kerül.Próbáltam HTML kóddal is, hátha az kell az Outlook-nak, Gmail-nek, Postának, de nem segített:
shareHTMLBody = "<html><body>";
shareHTMLBody = shareHTMLBody + '<a href="www.google.com">Google</a>';
shareHTMLBody = shareHTMLBody + "</body></html>";
Lehetséges egyáltalán?
Köszönöm. -
disy68
aktív tag
A pdf-et ebben az esetben nem a js csinálja, hanem valami nyomtatóként beépülő pdf generáló program (böngészőjé, microsoft-os, acrobat, akármi), ami a kapott oldalból csinál neked pdf-et. Ezeknek nem igazán szokott lenni sok beállításuk a méreten kívül. Lehet, hogy van olyan, ami esetleg generál valami alapján könyvjelzőt a végső pdf-be meg a dokumentum nevét is esetleg belerakja, de nem fogadnék rá.
Ehhez sanszosan szükség lesz valami explicit pdf készítő lib-re, akár javascript, akár backend oldalon. Egy gyors keresés, első találat (jsPdf), ránézésre tud sokmindent.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
Sziasztok!
Céges munkáink során gyakran van dolgunk A4-es formanyomtatványokkal, melyeket tömegesen kell gyártani, kevés adat módosításával. Az ilyen esetekre szoktam gyártani HTML + CSS + JS alapon működő, kliens oldali böngészőből futó célraorientált appokat, ahol kollégáim pár input mező kitöltésével azonnal megkapják az A4-es nyomatot.
Ezt a legegyszerűbben mm-ben meghatározott CSS, adatbeillesztésre használt JS és HTML <table> keret alkalmazásával csinálom, ahol a CSS-ben van egy külön nyomtatónézet, a JS pedig még a CTRL+P-t (window.print();
) is megnyomja helyettükMost azonban különlegesebb volna a feladat, ugyanis a lementendő PDF tartalmaz olyanokat, melyeket lövésem sincsen, hogyan tegyek bele. Itt egy kép:
A sárgával kijelölt zóna a dokumentum címe, ami nem egyezik meg a dokumentum elmentési nevével (nem dokumentum.pdf, hanem pl kiskacsa).
A zöldel kijelölt zónák pedig könyvjelzők (kattintásra oda is ugrik a dokumentum megfelelő részéhez).Kérdésem az lenne, hogy azon módszer alkalmazásával, amivel eddig dolgoztam (itt leírtak) megolható-e ez, vagy ha nem, megoldható-e mással?
Előre is köszönöm a válaszokat!
Ui.: Miért ebbe a topikba teszem fel a kérdést? Mert azt gyanítom, a megoldásnak köze lesz a JS-hez.
But who is watching the guardians?
-
martonx
veterán
Nyilván direkt gyártja le előre a Html-t, fogd ezt fel egyfajta naívan kivitelezett, bénácska cache-elésnek. Én sem értem mi szükség van erre, gondolom valami garázs hosting cég kenyér pirítóján fut az egyébként sem optimális kód, és enélkül rohadt lassú lenne.
Én kérek elnézést!
-
Bzozoo
tag
De én nem erről beszéltem. Nem arról beszéltem, ahogy nálad van. Arról, hogy nem kell előre generált HTML-eket gyártani. A HTML-t akkor kell előállítaani, amikor a felhasználó lekéri a tartalmat. A felhasználó már csak a generált HTML-t kapja, ami akkor generáloódik szerver oldalon, amikor a felhasználó megnyitja az oldalt.
Node.js, Next.js, Nuxt.js mind tudja ezeket. -
martonx
veterán
Tanulni mindig jó és hasznos. Kiábrándítani nem akarlak, de ez nem olyan ötlet, amiből valaha is haszon lesz, mindegy, hogy a google látja-e vagy sem.
Tanuláshoz irányok, amiket javaslok:
1. Szerver oldali frameworkök. Ha eddig PHP-ztél, és elégedett vagy vele, akkor valami értelmesebb PHP frameworköt javaslok, mint pl. Laravel, Yii, vagy azt se tudom mik a trendi PHP frameworkök mostanában.
2. Kliens oldali frameworkök. Ezek valóban nem barátai a SEO-nak, de manapság egyre kevésbé megkerülhetőek. Vuejs, React, Angular, Svelte (még talán ez utóbbi a legmegfelelőbb a SEO barát weboldalak kicsit erősebb interaktív irányba felokosítására).
3. Ezt csak nagyon óvatosan mondom, mert ez nagyon szubjektív, de én a helyedben elgondolkodnék az aranyos, játszós nyelv PHP helyett (öhm, tudom hogy most szereztem egy rakás ellenséget, és sokan a szívükhöz kapnak), valami komolyabb, teljesítmény orientált nyelvre váltani backenden pl. Java (Spring), C# (Asp.Net Core), Go (nem tudom milyen frameworkök léteznek hozzá) mennek mostanában. Én személy szerint az Asp.Net Core-ra esküszök, de mondom ez nagyon szubjektívÉn kérek elnézést!
-
Taci
addikt
válasz martonx #9230 üzenetére
Igen, ezért csináltam úgy (kényszer-öszvérmegoldásként), hogy a HTML tartalommal feltöltve és frissen tartva van szerver oldalon, így a Google is látja és indexeli - aztán a kliensen betölt, és a JS lecseréli a legfrissebbre.
Na de ez se nem szép, se nem hatékony. Rossz irány volt.
Úgyhogy ezt el is engedem, és hagyom a dinamikus tartalomgenerálást. Lesznek szerver oldalon pár percenként PHP-val frissített, statikus, tartalommal szépen feltöltött oldalak, a Google-nek lesz mit indexelnie. Nem lesz olyan szép és kreatív mint most (amit amúgy nagyon szeretek), ellenben nem csak a családom és én fogom ismerni és látni... Remélhetőleg.Így igazából használom azt a szerver oldalon generálós módszert, amit a mostani megoldáshoz csináltam (PHP):
1) HTML template jól elkülöníthető kulcsszó-sztringekkel (pl. ahova az első cikkhez tartozó kép linkje megy, az websiteData_imageSource_1, ahova az adott title, az mondjuk websiteData_Title_1 stb.)
2) PHP, lekéri a friss adatokat SQL-ből, aztán az eredményeket egy egyszerű sztringcserével a kulcsszó-sztringek helyére pakolja, majd elmenti (a megfelelő mappába index.html-ként).Oké, nagyon alap-alap-alap megoldás, de működik. Vagy tanuljak valami normális keretrendszert inkább? Semmit nem ismerek, sose használtam, csak pár nevet láttam még: React, Vue.js, Next.js, ilyesmik.
Szívesen tanulok, ha azt mondjátok, hasznos lehet, és hogy a mostani faék-egyszerűségű módszerem nem jó. Ehhez szívesen vennék egy ajánlást, mit tanuljak meg. (Bár azt se tudom, a jelenlegi cPaneles szolgáltatónál telepíthetek-e egyáltalán bármit, ami ezekhez lenne szükséges.)A cél: híraggregátor oldal. A jelenlegi formájában olyan, mint a Fb, görgetsz, töltődik. Szeretem, tetszik, de sajnos rossz ötlet volt. Nem Google-barát, ebből nem lesz haszon őszire. Inkább váltok valami 1.000.001. standard híroldal-kinézetre. Ehhez mondjuk szerintem nem kell semmi extra, elég a PHP --> SQL --> PHP --> HTML irány, de hátha ti mást mondotok.
Köszönöm.
-
Taci
addikt
Most pontosan így működik, és a Google semmit sem lát a JS által kliens oldalon generált tartalomból. (A search console-ban látom, hogy néha betölti a szükséges JS-t, olyankor van indexelt tartalom is, de aztán "vált", és mondjuk másnaptól már kihagyja a fájlt, így csak egy üres statikus váz van.)
Vannak saját cikkeik is, hogy az indexelő botok már látják a JS által generált tartalmat is, hogy a dinamikusan épülő weblapokat is indexelni tudják - sajnos azonban ez nem tökéletes / vagy nálam van valami baja (amit amúgy látok is - úgy gondolja, hogy az az 1 szál JS fájl neki nem kell és kész, és így bukta az egész oldalépítés).
Ezért akartam szerver oldali összerakásra váltani, viszont mivel az oldal ettől még görgetés után dinamikusan épül fel (infinite scroll), eléggé zsákutcába kerültem. Már a projekt kukázásán és újrakezdésén gondolkodom.[ Szerkesztve ]
-
Bzozoo
tag
Az mért nem járható út, hogy realtime generálod a tartalmat és azt realtime rendereled, akkor amikor az user megnyitja? Ekkor a felhasználó a legfrissebb generált információt kapná HTML-ben és a Google is ugyanazt a renderelt infót kapná.
Szerintem ez a JS-es div felülírás sem túlságosan SEO kompatibilis. -
Taci
addikt
Sajnos nem jó a B terv, nagyon sok a probléma vele. Így mennék még egy kört:
Adott egy tartalommal feltöltött div:
<div id="content">Tartalom</div>
Meg lehet szakítani / kihagyni az adott div renderelését?
<div id="content">
<script>if (jsBetoltve == 0){ //content div betöltésének átugrása }</script>
Tartalom</div>
És az elrejtés (display:none, z-index stb.) sajnos nem ajánlott a SEO szempontjából, sok cikket átolvastam a témában.
Ott kell hogy legyen a tartalom a szerveren, az sem nagy baj, hogy azt a plusz pár kB-ot le kell tölteni, viszont eléggé zavaró, ahogy látszódik egy pillanatra, mielőtt a JS lenullázná a div-et. (Hiszen rendereli, ha már benne van.)
Köszönöm.
[ Szerkesztve ]
-
Taci
addikt
válasz sztanozs #9225 üzenetére
Igen, teljesen igazad van. Azóta már rájöttem, hogy ugyanaz lenne a probléma, és hogy pont ugyanúgy kliens oldalon generálódna a tartalom, ahogy most - szóval csak mentem volna egy nagy kört a semmiért.
Úgyhogy marad a B terv, a generált tartalomhoz való hozzáfűzés. Így ez teljesen szerver oldali generálás lesz, JS csak akkor fog futni, ha a felhasználó a görgetésben az utolsó elemek közelébe ér (infinite scroll). Így a JS állomány nagy részét (amik eddig a tartalomgenerálásért voltak felelősek) elég ha a csak FCP (First Contentful Paint) után húzom be (async? Ennek még utána kell néznem amúgy is: [link]), de ez még arrébb van kicsit.Köszönöm.
-
sztanozs
veterán
Talán megpróbálom úgy, hogy üres lesz a div, és ha a (tartalomgeneráláshoz) szükséges JS-ek közül nem töltődött be bármelyik is, akkor behúzza oda az előre generált tartalmi részt.
De ha a robot épp nem futtat JS-t, akkor ezt hogy oldod meg?JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Taci
addikt
Köszönöm (sztanozs, neked is), a példakódot is (jó a fejcsere ) .
Viszont a tartalom elrejtését már az elején kizártam, mert a Google nem mindig egyértelműen áll hozzá (rendben van, látja, indexeli - vagy épp SEO-manipulálásnak tartja, és ejnyebejnye). És az egész átalakításom lényege pont az, hogy a G felé rendben legyen az oldal.Talán megpróbálom úgy, hogy üres lesz a div, és ha a (tartalomgeneráláshoz) szükséges JS-ek közül nem töltődött be bármelyik is, akkor behúzza oda az előre generált tartalmi részt. Máskülönben pedig üresen hagyja, és engedi, hogy a JS végezze a dolgát.
Nagy vonalakban:
https://jsfiddle.net/1dgyfs2v/
(disy68, a példakódodban van pár rész, amit így is fel tudok használni, köszönöm.)Bár jobban szeretném, ha nem csak utólag, szkripttel rakna bele tartalmat - hisz' az egész kálváriám abból indult eleve. Na de ezt már kisakkozom valahogy, most már elég lehetőségem van. Köszönöm a segítséget.
-
disy68
aktív tag
Nekem is hasonló megoldás jutott eszembe, mint sztanozsnak. Alapból elrejted a generált tartalmat, a betöltendő js-ben jön a függvény, ami betölti az új content-et, amit ellenőrzöl, hogy létezik-e, ha nem akkor megjeleníted a generált tartalmat, ha igen, akkor meghívod a betöltött js-ből az új content letöltést, ami a végén meg is jeleníti a betöltött tartalamat.
Ha a generált html-ben a képeket se akarod betölteni, amíg nem muszáj, akkor generáld úgy őket, hogy az src-t berakod data attribútumba amit akkor állítasz be, amikor nem töltött be js fájl.
“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
sztanozs
veterán
Azt tudod csinálni, hogy alapból eltakarod / eltünteted a DIV-et és csak akkor jeleníted meg, ha a JS felülírta. Esetleg beleraksz egy 1x1-es IMG-t és az ALT szövegbe betöltöd azt, amit a DIV-be tennél és azt berántja a google.
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Taci
addikt
Sziasztok!
Szeretném azt elérni, hogy ha egy adott szkript (külső JS fájl) nem tölt be, akkor az adott div tartalma kiürítésre kerüljön még feldolgozás előtt, sőt, ha lehet, be se töltődjön:
https://jsfiddle.net/byvfcex0/Most egyelőre kb. csak így tudtam megoldani, ahogy a példában van, viszont a Network tabon látszódik, hogy ettől a div tartalmát még feldolgozza nyilván, a képet is betölti, és csak utána üríti - és ez így nem a legjobb.
A háttér:
Kliens oldalon JS által generálódik a div tartalma, viszont a Google nem (mindig) tölti be a hozzá szükséges JS-t, így indexeléskor nem lát tartalmat.
Ezért most már szerver oldalon generálom le a tartalmi részt - viszont ez nem a legfrissebb, nem ugyanaz, mintha amikor a felhasználó betölti az oldalt, és a pár mp-es frissen (kliens oldalon) generált adatok ott vannak.Ezért betöltéskor szeretném azt elérni, hogy:
- ha a szükséges JS nem lett betöltve (Google indexel), akkor ott van a szerver oldalon generált tartalom, 1 óránként frissítve,
- viszont ha betöltött a JS (normál felhasználó), akkor a div tartalma eleve fel se legyen dolgozva, mert a JS úgyis kiüríti és friss tartalommal tölti fel. (Az a plusz pár kB-nyi HTML-rész pedig nem akkora vérveszteség.)Most is működik, viszont az első pár képet feleslegesen tölti be, mert azonnal kukázva lesz (a többi lazyload-os, szóval nem számít), illetve egy pillanatra látszódik is a tartalom, amit aztán a JS leszed, és ez nem tetszik.
Meg lehet oldani, hogy a szkript betöltésének sikerességétől függően dolgozza fel a div tartalmát / vagy skippelje?
Van B tervem is (és C is), dobom a div törlését, és a szerver oldalon generált tartalomra építek, csak sűrűbbre veszem a generálását, 5 percre, és ahhoz fűzöm hozzá a többi tartalmat. Csak ez sok módosítás, így ha megoldható az első változat, azt csinálnám.
Köszönöm.
-
-
-
disy68
aktív tag
Miért van szükség, hogy mindegyiknek legyen id-ja?
A kérdésed alapján az a gyanúm, hogy valami loop-ban keresel getElementById-val ahelyett, hogy pl. kapna minden elem egy azonos class-t és lekérnéd az összeset egyszerre egyquerySelectorAll('.közösclass')
-al és fel sem merülne ez az egész.“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude
-
Sziasztok!
Adott egy HTML oldal, melyen az alábbi azonosítókkal ellátott elemek vannak:
<div id="element1"></div>
<div id="element2"></div>
<div id="element3"></div>
<div id="element4"></div>
<div id="element5"></div>Erre írnék egy scriptet, ami vizsgálja őket (1-sokáig). Viszont, mivel az elemek száma folyamatosan nő, a JS-be pedig nem óhajtok belenyúlni, így olyan kérdésem lenne, hogyha a program rákeres (az itt lévő minta alapján)
<div id="element6"></div>
-ra, ami nem létezik, van-e lehetőség rá, hogy ne Console hibával lépjen ki, hanem valahogyan jelezze (akár alert elemmel), hogy az amire rákeresett nem létezik és normálisan, hiba generálása nélkül álljon le?
Ugyanis ha hibával áll le, akkor nem folytatja a futását a program, márpedig lennének még sorok alattaElőre is köszönöm a válaszokat!
But who is watching the guardians?
-
Taci
addikt
válasz martonx #9212 üzenetére
https://jsfiddle.net/n5ap87gh/
A jobbra gombot majd úgy nyomd, ha előtte belekattintottál a jobb alsó területbe, ahova a gombot is generálja.
Jaj bocs, eggyel lejjebb akart menni a válasz.
[ Szerkesztve ]
-
RedHarlow
aktív tag
Sziasztok,
Azt meg lehet oldani JS-vel, hogyha a billentyűzet-en lenyomják a jobbra irányt akkor megnyomódjon egy gomb az oldalon id alapján? Lehet ezt figyelni?
Előre is köszönöm a segítséget. : )
-
martonx
veterán
-
Taci
addikt
válasz martonx #9206 üzenetére
Azt hogyan lehetne szépen kezelni, ha a többi elem csak később generálódik?
Esetemben görgetés után, de a példában úgy csináltam, hogy 1mp után tölti be a 3. és 4. elemet:
https://jsfiddle.net/vsecyd1t/Ha így oldom meg:
https://jsfiddle.net/vsecyd1t/2/
akkor az összes elemre újra megcsinálja. 4 elemnél még oké, de ha esetemben már a 200. elemnél jár a görgetésben, akkor az már pazarlás.Plusz a 3. és 4. elem betöltése után ha az 1. vagy a 2. elemre kattintok, duplán hívja meg a funkciót. (A másik alertet direkt kiszedtem, hogy egyértelmű legyen, hogy mikor hív duplán.)
Hogyan lehetne ezt jól megoldani?
Köszönöm. -
martonx
veterán
-
Taci
addikt
válasz martonx #9202 üzenetére
Ahogy most van:
https://jsfiddle.net/swndoygm/Ahogy szeretném, de nem áll össze:
https://jsfiddle.net/swndoygm/1/Köszönöm.
-
Taci
addikt
Sziasztok!
Adott az alábbi típusú HTML elem:
<a id="category1"
href="https://pelda.hu/category1"
onclick="funkcio('categories', 'category1'); return false;">
Category1
</a>
Ezeket szeretném megcsinálni úgy, hogy ne legyen a HTML kódban az onclick esemény:
<a id="category1"
href="https://pelda.hu/category1">
Category1
</a>
Ezt a kódot készítettem hozzá:
for (var i = 0; i < categoriesArray.length; i++){
var element = document.getElementById(categoriesArray[i]);
element.addEventListener("click", function(e){
funkcio(0, categoriesArray[i]);
//alert('element: ' + element);
e.preventDefault();
});
}
Azt szeretném, hogy menjen végig a tömb összes elemén (amik az elemek ID-jai), majd mindegyikhez állítsa be, hogy kattintás esetén fusson le a funkcio() függvény (csak a példa kedvéért a név) paraméterként a tömbelemet megkapva. A preventDefault azért kell, hogy ilyenkor ne kövesse a href linkjét.
Az alertet azért raktam bele, hogy lássam, mit csinál - és azt látom, hogy az összes elemnél a tömb utolsó elemét mutatja.
Elég sok találat van rá neten (például ez), de eddig egyikkel sem sikerült megoldanom.
Tudnátok segíteni benne? Köszönöm.
Új hozzászólás Aktív témák
Hirdetés
- iPhone 13 Pro 256GB Graphite, kártyafüggetlen, dobozával, töltővel
- Számítógép eladó. (i5-4590+16GB ram+GTX 750TI 2GB+120GB SSD+500GB HDD) Beszámítás
- Keresek 2x16GB DDR5 7000mHz CL32 RGB (SAMSUNG B-DIE) RAMOT reális áron.
- BONTATLAN Avatar Frontiers of Pandora Limited Edition + Steelbook
- Steam Deck LCD - 512GB-re bővített + 512gb Samsung Evo Plus SD
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest