Hirdetés
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- WireGuard VPN a mindennapokra
- Brogyi: CTEK akkumulátor töltő és másolatai
- GoodSpeed: Ágymatrac keresési kálvária
- gban: Ingyen kellene, de tegnapra
- sh4d0w: StarWars: Felismerés
- Meggyi001: Kórházi ellátás: kuka vagy finom?
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Mr Dini: Mindent a StreamSharkról!
-
LOGOUT
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
-
nevemfel
senior tag
válasz
Silεncε
#9049
üzenetére
Igazad van, az innerHTML sem biztonságos:
There is one built-in safeguard in place, though. Just injecting a script element won’t expose you to attacks, because the section of the DOM you’re injecting into has already been parsed and run.
// This won't executevar div = document.querySelector('#some-div');div.innerHTML = '<script>alert("XSS Attack");</script>';JavaScript that runs at a later time, though, will.
// This WILL rundiv.innerHTML = '<script deferred>alert("XSS Attack");</script>';// This will, toodiv.innerHTML = '<img src=x onerror="alert(\'XSS Attack\')">';Ez a megoldás viszont ígéretesnek tűnik:
If the third-party content is allowed to contain markup, a helper library like DOMPurify will remove any markup that’s not part of a secure whitelist before injecting it.
-
-
válasz
Silεncε
#8935
üzenetére
Láttam már pl 4-5.000 soros weboldalakat. Amit ha valaki átgondoltan csinál meg, akkor nem lesz több pár száz sornál. Egyébként nem tudok neked hivatkozást adni a Google tiltásról, ezt egy Webprogramozótól hallottam. Hogy van-e igazság tartalma, azt nem én fogom eldönteni.
-
válasz
Silεncε
#8930
üzenetére
Szeretek mindent a lehető legegyszerűbben csinálni. Ráadásul úgy, hogy nem függök senkitől.
Nem tudom, milyen programra gondolsz, ami több ezer sort vesz igénybe. Ha nem egy 3D komplex 8 órás menetidővel rendelkező, böngészőből futtatott játékot írsz, akkor hová használsz ennyi sort? Ilyen méreteket már a Google keresője is tiltólistára tesz. -
-
-
-
coco2
őstag
válasz
Silεncε
#8706
üzenetére
A redirect-ek környékén kotorásztam anno, hogy js-ből megállapíthassam a szerver címét, ahova egy redirect küldött (terhelés osztáshoz kellett). Az régebben működött, aztán letiltották. Akkor találtam stackoverflow-n anchorra vonatkozó tippet adni egy srácnak (#-t rakni a cím végére), hogy az legalább lekérdezhető. És kapta az a tanács a lehurrogást, hogy az is egyszer működik, egyszer nem. Aztán félre raktam a témát a magam részéről, és azóta nem foglalkoztam vele.
-
-
coco2
őstag
válasz
Silεncε
#8680
üzenetére
Mert természetesen megtartanám az eredeti funkcionalitást. A <form> submit esemény lapot tölt újra.
Csúnya volt az eredeti gomb a form submit-hoz, lecseréltem image-re (a form elem bármi image-et is elfogad submit elemként). Viszont így nincs gombmegnyomás anim, ami bénán néz ki. Azért akarok nyomógombot.
Viszont akkor meg form submit nem lesz
Szóval marad a window.location.assign(). De ehhez meg POST paramétert adni nem tudok.GET paramétert tuti adni tudok hozzá, azt megnéztem. De ha tudok POST paramétereket adni hozzá valahogyan, jobban nézne ki, hogy a megjelenített oldal címbe nem kerülnek bele a get paraméterek. Nem mintha jelenleg túl sok lenne, de akkor is randa
-
nevemfel
senior tag
válasz
Silεncε
#8676
üzenetére
De mondom, lelked rajta.
A lelkem az úré. Minden másra ott van a javascript.

Szerk: Én C64 basic-en kezdtem, aztán jött a Pascal 6-7, ES1-2-3-5, PHP 3-4-5-7, hozzá a JAVA 1.2, és egyszer kénytelen voltam alámerülni a COBOL gyönyöreibe. Szóval lehet, hogy ez csak valamiféle generációk közti megnemértés.
-
_ak_
addikt
válasz
Silεncε
#8665
üzenetére
Köszi, végül ez lett belőle:
const account: IAccount | null = useAccount(accounts[0] || {});
const customProp: string | undefined =
account?.idTokenClaims?.extension_customProp;Ahogy mondtad az AccountInfo lehet null is, emiatt a customProp lehet undefined is), amit használata előtt ellenőrzök, így a helyére került minden.
Jim-Y:
Kipróbáltam ezt is, de ugyan az maradt a figyelmeztetés.
coco2:
Távol álljon tőlem, hogy megmondjam a frankót, de ha engem kérdezne valaki, hogy érdemes-e a TS-el foglalkozni, akkor azt tanácsolnám, hogy ne is kezdjen bele semmibe anélkül, legalábbis, ha programozásból akar megélni és JS vonalon mozog.
-
_ak_
addikt
válasz
Silεncε
#8663
üzenetére
Valóban, figyelmetlen voltam a customProp egy string a végére és rossz helyen deklaráltam.
const account: IAccount = useAccount(accounts[0] || {});
const customProp: string = account?.idTokenClaims?.extension_customProp;Így megoldódik a customProp kérdése, de az accountra ezt kapom:
TS2322: Type 'AccountInfo | null' is not assignable to type 'IAccount'. Type 'null' is not assignable to type 'IAccount'.
A useAccount:
// Given 1 or more accountIdentifiers, returns the Account object if the user is signed-inexport declare function useAccount(accountIdentifiers: AccountIdentifiers): AccountInfo | null; -
polymorphin
csendes tag
válasz
Silεncε
#8659
üzenetére
Postcss, postcss-preset-env-el lehet, ez is a fentebb emlitett caniuse-bol dolgozik.
Ha nem tamogatja a HTML5-ot a bongeszo akkor lehet mondeni hogy igy jart"szétesve inkább ne jelenítse meg az oldalt sehogy, helyette egy információs lap, hogy használd ezt vagy azt a böngészőt."
<noscript> - HTML: HyperText Markup Language | MDN (mozilla.org)"Javascriptek futását letiltja teljesen. Na erre is fel akarom készíteni"
Ugy lehet felkesziteni hogy nem irsz egy sor JS kodot sem -
coco2
őstag
válasz
Silεncε
#8650
üzenetére
A #8640-et megtaláltam. Feltételezem, arról van szó.
Amit a #8649-ben írtam, arra vonatkozó célzás, hogy találkoztam már ügyfél igénnyel, amikor valaki nagy sebbel-lobbal nekiállt nagyon tutit alkotni, és akkor derült ki, igazából fogalma sincs, hogy mit akar, vagy hogy egyáltalán mire hasonlítson? A #8646 + #8647 kísértetiesen arra hajaz.
De ha nagyon félre értettem volna valamit, gondolom, majd felvilágosítasz.
-
-
Taci
addikt
válasz
Silεncε
#8506
üzenetére
Köszönöm a részletes választ.

És persze elrontottam a kérdést, rossz példát hoztam fel, mert a gombokon, elemeken lévő onclick-függvényhívásokra akartam volna rákérdezni - azért is hoztam a félkövérre állítós példát mellé.
Szóval arra irányult volna eredetileg a kérdés, hogy van-e hátránya annak, hogy ha
onclick-ként állítom be magában a HTML kódban a gombra, mit csináljon (függvényhívás), azzal szemben, ha a gombnak csak meg van adva az osztály pl. hogyclass="btn-toggleDarkMode", aztán egy külső JS-ben pedig definiálva van hozzá egyaddEventListener, és ott történik a JS hívása?Nyilván szebb, tisztább a kód, ha csak egy class van megadva a gombnak, viszont emiatt ugye több kódolás is a háttérben.
A T-s dologra pedig nem reagálok.
-
Pala
veterán
válasz
Silεncε
#8486
üzenetére
A linkelt codepennél az a probléma, hogy egyetlen root node-ból (parent) indul az egész, miközben ugyebár minden (normális) embernek két szülője szokott lenni, emellett oldalágon beházasodást is kezelni kell és akkor jönnek még ilyen buktatók, mikor rokoni szálon házasodnak emberek és úgy lesz gyerekük, meg egyéb finomságok...
Ezért nem lehet fa-struktúrát használni, hanem általánosabb gráf kell ide, amiben a körmentességet biztosítani kell, hiszen az nem fordulhat elő, hogy a nagyapa fiának a fia a nagyapa apja is legyen. 
Fel kell állítani dummy adatokkal egy példa-családfát 20-30 emberrel, leképezni az egészet egy szomszédossági listába (adjacency list), ez alapján már ki lehet generálni rekurzívan valami otromba gráfot belőle, aztán lehet gondolkodni a formázáson. Szerintem ez utóbbi a nagyobb challenge benne, hogy miként lehet ezt átláthatóan prezentálni.
-
coco2
őstag
válasz
Silεncε
#8426
üzenetére
Ennek alapján még nem kellene baj legyen.
Van egy parent div, azt z-index 0-n tartom. Azon belul vannak a rétegek egymás alatt fölött ugyan annak a parent div-nek a kontextusában. Azok között már nincs alá/fölé rendelés, egyenrangúak. Elvileg.
Azt látom, hogy a főciklus végén kidobom konzol logba egy adott div-hez tartozó z index-et, folyamatosan 1-et lát a javascript, de 5-öt a dev tools (bármikor megállítom, 5-öt ír vissza). Ha a megjelenítés lehet is trükkös, az a változó egy számszerűsített érték. Az hogy térhet el annyira? Kb olyasminek tűnik, mintha a z-index read-only lenne, és hiába írom át a zIndex-et, az nincsen hatással a z-index-re. A linkelt blog ilyesmire nem tér ki
-
lanszelot
addikt
válasz
Silεncε
#8239
üzenetére
Először is köszönöm szépen mindenkinek.
Végre tudom mit keressek, találtam is, és így legalább tudom merre tovább :)
A weboldalt is elkezdtem, és tetszik. Van nagyon könnyű, és ad egy kis pozitív visszacsatolást, hogy azokat legalább meg tudom csinálni. Ez nagyon kellett.
-
Taci
addikt
válasz
Silεncε
#8196
üzenetére
Ah, nagyon szépen köszönöm!!! Így végre úgy működik, ahogy szeretném! Köszönöm!
Annyi ideget megettem vele - persze ez az én hibám, még nem teljesen tiszta, mi-hogyan működik. De azért kérdezek, hogy gyakorolhassak, megértsem, fejlődjek, tanuljak. 
A példakód alapján már 1 fokkal érthetőbb, mi történik.
Ahogy látom, ez a megoldás querySelector-ral "behúzza" a megfelelő Class-t, aztán az ahhoz tartozó attribútumoknak új értékeket állít be a kiválasztott városok alapján. Majd ezután meghívja a JS-ben (widget.min.js) lévő inicializáló __weatherwidget_init() függvényt.A JS-kód tetején a pen-ben írja, hogy van egy újabb, jobb változat is:
https://codepen.io/weatherwidget/pen/vvPrRN
Ez már egy fokkal bonyolultabb (számomra így elsőre), de nekikezdek és próbálom felfogni, mi-merre.
Viszont az egyből feltűnt, hogy nincs benne az előző megoldásban lévő függvényhívás a JS-ből (widget.min.js). És nem is tölt újra, ahogy az előző megoldásban, itt csak simán lecseréli az adatokat, a tartalmat, és nem távolítja el és tölti be újra az egész widget-et.Erre esetleg kérhetnék egy magyarázatot? A jövőre nézve, a saját szkriptjeimre, hogy tudjam, mi-miért működik így az első változatnál (miért kell az ..._init() függvényhívás), és miért működik így a második változatnál függvényhívás nélkül.
Köszönöm! (Már eleve ezt a példakódot is!
) -
Keem1
veterán
válasz
Silεncε
#8164
üzenetére
Neem, természetesen JSON a fogadott data.
A "bajom" az, hogy beágyazott webserverrel kell dolgoznom (C# HTTPListener), így a HTML-en felüli dinamikus részt muszáj JSON API-val és kliensoldali scripttel megoldanom. Ez utóbbihoz viszont nem értek igazán, legalábbis eddig kevés dolgom volt még vele.
$.getJSON(hubaddress+"/smarthomeapi/"+homeexternalid+"/devices", (responsejson) =>
{
$.each(responsejson, function (key, val)
{
console.log("Filling up devices box: " + val.displayname);
$(".devices").append("<div><span class='icon icon"+val.devicekind+"' data-homeid='"+val.homeexternalid+"' data-deviceid='"+val.deviceid+"' data-action='ledtoggle'></span>"+val.displayname+"<small>"+val.manufacturer+"</small></div>");
});
}); -
Pala
veterán
válasz
Silεncε
#8072
üzenetére
Reacthoz talán a legjobb megoldás (CSS-in-JS helyett) a Sass/SCSS modules. Scope-olható és nem kell beleturmixolni a JS-be. Az ilyen Radium meg Styled Components-féle mutációktól én fejre állok.
Ezt az Emotiont nem ismertem, de most gyorsan belenézve ez is kb. ugyanaz a förmedvény, mint a Styled Components. -
togvau
senior tag
válasz
Silεncε
#8035
üzenetére
nekem tetszik abból a szempontból, hogy olyasmi mint a JSF volt, bár abban is azért nagyobb a rend. Ott is nyomathattál a template-be java kódot, de azért nem volt ajánlott, sem jellemző. React jsx-nél meg tele fan kóddal a template, ami nagyon kaotikus tud lenni.
Bár amúgy kaotikus, és ták... hát a JS maga ilyen, hisz egy kaotikus, tákolt ökoszisztéma, aminek sok éve ki kellett volna halnia, ha nem lenne kizárólagosan támogatott a böngészőkben. (rohadjál meg m$)
-
válasz
Silεncε
#8022
üzenetére
Jogos, túl közhelyet használtam és sarkítottam a "JS logic"-al.
Közben pontosítottam és univerzálisabbá tettem az ellenőrzésem, figyelembe véve, hogy mennyi tizedesjeggyel van dolgom.
Ezek most itt beégetett adatok a konkrét példa miatt, de ezekre van függvény, ami megadja az értéküket, csak nem akartam bonyolítani.
var quantity = 1.65,var minQuantity = 0.55,var decimalsCount = 2;if ((Math.round(quantity * Math.pow(10, decimalsCount)) % Math.round(minQuantity * Math.pow(10, decimalsCount))) / Math.pow(10, decimalsCount)) { -
válasz
Silεncε
#8019
üzenetére
Köszönöm szépen!
Annyi javítást eszközölnék rajta, hogy az egészet még elosztanám 100-al, hogy megkapjam a helyes maradékot, ha van.
(Math.round(1.65 * 100) % Math.round(0.55 * 100)) / 100Ebben a példában a
0.55 * 100miatt kell aMath.round()ahogy látom, mert0.55 * 100 = 55.00000000000001JS logic

Új hozzászólás Aktív témák
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- CTO Bontott 0perces TÜZES EZÜST MacBook Air 13.6" M4 10C/1G 16GB 512GB Gar.: 1 év APPLE világgar
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 14 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3017, 100% Akkumulátor
- Ultimate előfizetés akár 4166 Ft/hó áron! Azonnali, automatizált aktiválással, csak Nálam!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

![;]](http://cdn.rios.hu/dl/s/v1.gif)

