ugrás a tartalomhoz

Modal dialog

mind1 valami név · 2023. Már. 26. (V), 14.10
Két kérdés egyben :)
- a "modal"-t minek lehet fordítani? A modal dialog tudtommal egy olyan ablak, ami a meglévő oldal felett nyílik meg és blokkolja az eredeti oldal működését, amíg nyitva van. Szótár szerint "alaki", de ez nagyon nem fedi a működését. :) (számomra az "alaki" az a katonai kiképzés egy részét jelenti :D)
- nincs más mód az ilyen dobozok készítésére, csak az, hogy beleírom a html-t az eredeti kódba és kap egy "display:off" style-t? Valamiért úgy emlékszem, hogy erre volt egyéb mód is, de a google által megtalált tutorial-okban mindenhol csak ez van.

Végül is megoldhatónak tűnik, valami document.createElement() sorozattal, csak én valami olyanra emlékeztem (de lehet, hogy más programnyelvekkel keverem), mint az alert().
 
1

Dialog

Poetro · 2023. Már. 26. (V), 16.19
A mai böngészőkben van <dialog> elem.
2

Akkor mégis jól emlékeztem,

mind1 valami név · 2023. Már. 26. (V), 18.32
Akkor mégis jól emlékeztem, hogy létezik ilyesmi.
Most nem tudom linkelni az eddig megnézett oldalakat: egy hirtelen jött ötlet miatt beírtam a google-be, hogy "modal dialog js tutorial" és a kapott találatok mind olyanok voltak, hogy drótozzak be az oldal kódjába egy hidden dobozt és abba rakjam amit meg akarok jeleníteni.

Köszi.
3

JS névtelen függvény vs blokk függvény nélkül

mind1 valami név · 2023. Már. 28. (K), 14.48
https://www.javatpoint.com/html-dialog-tag
Van itt egy kódrészlet, amiben található egy rövid JS.
A <script>...</script> közé beraktak valami ilyet:

(function(){ ... })();

Ez miben más, mintha csak egy sima blokk lenne function() és egyéb körítés nélkül?
{ ... }

Próbálom értelmezni az eredetit: ez egy "self invoking function", ami rögtön le is futtatja önmagát. O.K., de ennek itt mi értelme? Máshol sem látom teljesen az értelmét, de biztosan lesz majd, itt viszont... van valami, ami kimaradt az olvasmányaimból( simán lehet, lassan fehér bottal járok, szóval... :( )
4

Kvázi privát névtér

Endyl · 2023. Már. 28. (K), 15.32
Általában: Nyugodtan deklarálhatsz változókat (var, függvény deklarációk), nem szivárognak ki, nem szennyezik a globális névteret. Csak az megy ki, amit szeretnél (pl. visszatérési érték). let, const működne sima kód blokkal is, vagy strict mode-ban a függvény, osztály deklaráció is. De sima kód blokkot nem nagyon lát az ember, egyértelműbb és egyszerűbben kezelhető függvénybe csomagolva.

Immediately Invoked Function Expression (IIFE) hivatalosan. Itt vannak még egyéb példák, bővebb leírás is.
5

Köszi. (nem vita, csak én úgy

mind1 valami név · 2023. Már. 28. (K), 15.43
Köszi. (nem vita, csak én úgy láttam, a blokkból sem jut ki változó, kivéve a var-t talán, az elvileg globálisnak van mondva)
Ha jól értelek, akkor itt csak stilisztikai célja van, funkciója nincs ennek a módnak.

Az persze már megint nem tiszta és nem is találom, hogy mikor beszéltünk róla, hogy a <... oncontext="függvény()"> miért nem működik, ugyanakkor a <... onclontext="return függvény()"> miért csinálja azt amit elvárnék tőle...
A default működést akartam letiltani a False visszatérési értékkel, de return nélkül nem működik.
6

Nem csak stilisztika

Endyl · 2023. Már. 28. (K), 16.22
Bár sokminden működik sima kód blokkal, egy IIFE messze nem csak stilisztikai konvenció. Ha nem akarsz semmin meglepődni, akkor érdemes IIFE-t használni saját névtér menedzselésére. (Eleinte nem is létezett block scope JS-ben, csak global és function scope volt.)

A másik részre meg itt a válasz: event handler attributes

All event handler attributes accept a string. The string will be used to synthesize a JavaScript function like function name(/*args*/) {body}, where name is the attribute's name, and body is the attribute's value.


Tehát ha nincs return, akkor nem lesz visszatérési értéke a "virtuális" függvénynek, azaz undefined lesz, és csak a false akadályozza meg az alapértelmezett működést. Egyébként tisztább az event.preventDefault()-ot használni erre.
7

Félreértesz: én a konkrét

mind1 valami név · 2023. Már. 28. (K), 16.53
Félreértesz: én a konkrét hely konkrét példájára írtam, hogy akkor itt nincs egyéb funkciója, csak a "hagyománykövetés", mert itt gond nélkül működne egy mezei blokkban is.

A másik "gond": azért nem akartam JS-ből intézni, mert most egy template-ből generálódik a html, ott két helyre kell betenni az oncontextmenu-t és gond letudva. Ha JS-ből csinálom, akkor már ehhez is programot kell írnom, ami végigfut az érintett tageken vagy egy olyat, amit a másik témában javasoltál, hogy az egészre van egy handler és az válogat az event source alapján.
Most ez tűnt az egyszerűbbnek.
A végét még emésztem, mert nekem elsőre az jött le, hogy a string végső soron átmegy egy eval-on, de akkor ezek szerint nem ez történik.