- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- vrob: Az IBM PC és a játékok a 80-as években
- eBay-es kütyük kis pénzért
- hdanesz: Elektromos autózás - első élmények
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- Lalikiraly: SÜNI energiaital.
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Gurulunk, WAZE?!
- sziku69: Fűzzük össze a szavakat :)
-
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 execute
var div = document.querySelector('#some-div');
div.innerHTML = '<script>alert("XSS Attack");</script>';
JavaScript that runs at a later time, though, will.
// This WILL run
div.innerHTML = '<script deferred>alert("XSS Attack");</script>';
// This will, too
div.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-in
export 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)) / 100
Ebben a példában a
0.55 * 100
miatt kell aMath.round()
ahogy látom, mert0.55 * 100 = 55.00000000000001
JS logic
Új hozzászólás Aktív témák
Hirdetés
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Konteó topic
- Android alkalmazások - szoftver kibeszélő topik
- Milyen billentyűzetet vegyek?
- Autós topik látogatók beszélgetős, offolós topikja
- Hónap végén érkezik a Xiaomi Band 10, ára is van
- Nyaralás előtti hardverszemle
- Samsung Galaxy A52s 5G - jó S-tehetség
- Filmvilág
- AliExpress tapasztalatok
- További aktív témák...
- UF Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1360P 16/1TB Iris Xe 2,8K OLED 90Hz
- Lenovo Yoga 9i x360 Érintős Hajtogatós Laptop Tab 14" -60% i7-1260P 16/512 Iris Xe 2,8K OLED 90Hz
- Új DELL Inspiron 16 Fémházas Multimédiás Laptop 16" -40% Ryzen 7 8840U 8mag 16/1TB FHD+ IPS
- Új DELL Inspiron 16 Fémházas Multimédiás Laptop 16" -40% Ryzen 7 8840U 8mag 16/1TB FHD+ IPS
- Sony FE 28-70 mm F3.5-5.6 OSS
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Bomba ár! Fujitsu LifeBook U7310 - i5-10GEN I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! Lenovo ThinkPad Yoga 260 - i5-G6 I 8GB I 256SSD I 12,5" Touch I W10 I Cam I Gari!
- BESZÁMÍTÁS! Gigabyte B450M R5 5600X 16GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Seasonic 520W
- DELL Thunderbolt Dock - WD19TB modul 02HV8N (ELKELT)
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest