És ismét üdvözlöm Önt egy másik, a nyelvnek szentelt témában JavaScript, amelyben elemezzük alert, prompt, confrim módszerek. Ezek a módszerek be vannak építve a nyelvbe javascriptés segít a felhasználóval való interakcióban.
Éber bizonyos információkat tartalmazó ablakot jelenít meg a böngésző képernyőjén, amely szünetelteti a szkriptet, amíg a felhasználó meg nem nyomja az OK gombot.
Gyors, általában egy ablakot jelenít meg, amelyben a felhasználónak feltesz egy kérdést, amelyet meg kell válaszolnia egy bizonyos szövegmezőben, majd nyomja meg az OK gombot. A felhasználó dönthet úgy is, hogy nem ír be semmit a Mégse gomb megnyomásával.
megerősít egy ablakot is megjelenít, amelyben a felhasználó már nem írhat be semmit a szövegmezőbe, csak az OK vagy a Mégse gombot tudja megnyomni.
És most, egy rövid bevezető után, térjünk át a fentiek gyakorlati figyelembevételére.



éber, felszólít, megerősít





Ennek eredményeként a böngésző oldalának frissítésekor egy felhasználói üdvözlő ablakot fogunk látni. Az OK gomb megnyomása után a következő ablak jelenik meg, ahol a nevedet kérik. Ennek a metódusnak két paramétere van, az első kötelező és felelős a megjelenő címért, esetünkben a felhasználónév kérdése. És a második paraméter felelős azért az értékért, amely alapértelmezés szerint megjelenik a szövegmezőben. Ha beírja a nevét és megnyomja az OK gombot, akkor a neve belefér a változóba nameUser. Ha megnyomja a Mégse gombot, akkor a változó kiírásra kerül nulla.
És végül egy ablak, amely megkérdezi a felhasználót, hogy el akarja-e hagyni oldalunkat vagy sem. Egyetértés esetén egy logikai érték kerül a változóba igaz, és meghibásodás esetén hamis illetőleg. Ennyit kell tudni ezekről a módszerekről, találkozunk a következő oktatóanyagokban!

A JavaScriptben három alapvető művelet van, amelyek lehetővé teszik, hogy adatokat kapjon a felhasználótól további feldolgozásra szkriptekben. Ezek figyelmeztetnek, felszólítanak és megerősítenek. Mire használják őket, hogyan kell használni őket és más árnyalatokat, a cikk későbbi részében lesz szó.

éber

Egy modális ablak megjelenítésére szolgál a böngésző képernyőjén (ez azt jelenti, hogy a felhasználó nem kattinthat semmire az oldalon, amíg be nem zárja ezt az ablakot. Ebben a példában addig, amíg az ablakban az "OK" gombra nem kattint).

A riasztásban szereplő üzenet megjelenítése után a szkript végrehajtása felfüggesztésre kerül, és a modális ablak bezárása után folytatódik.

Feltöltés esetén mezőket, és az OK gombra kattintva a szkript visszaadja a felhasználó által megadott információkat.

A parancs szintaxisa valamivel bonyolultabb, mint az előző, mivel lehetővé teszi a felhasználó fellebbezésének szövegének és az információbeviteli mező tartalmának beállítását, amely alapértelmezés szerint megjelenik: eredmény = prompt(cím, alapértelmezett) ;, Ahol

  • cím- egy üzenet, amely megjelenik a felhasználó számára a modális ablakban. Az érvelés kötelező.
  • alapértelmezett- alapértelmezés szerint mi fog megjelenni a szövegbeviteli mezőben. Kitöltése is kötelező, mert ha nincs beállítva, az egyes böngészőkben hibákhoz vezethet. Ha üresen szeretné hagyni a beviteli mezőt, akkor egyszerűen állítsa be a promptot a következőképpen:

    var myTest = prompt("Bármilyen információ" , """);

Kicsi azonnali használati példa:

var év = prompt( – Melyik évben végezte a gimnáziumot?, 2008); alert("Ön az év " + év + " diplomája!" ) ;

Általában ez a parancs arra szolgál, hogy adatokat gyűjtsön a felhasználóktól, amelyekre a szkriptnek szüksége van a további munka folytatásához.

megerősít

Ez is egy modális ablak. Mivel a névből nem nehéz kitalálni, általában arra használják, hogy valamiben megegyezzenek a felhasználóval.

Erre élesítve - az interakcióhoz az OK és a CANCEL gombokkal látja el a felhasználót, amelyek az igaz és false logikai értékeket adják vissza a szkriptnek. Értékelések: 4 (átlagosan 4 az 5-ből)

Ebben a leckében az ablakobjektum metódusait ismerjük meg: alert() , prompt() és megerősítés() .

alert() metódus

Az alert() metódus célja egy figyelmeztető párbeszédpanel megjelenítése a megadott üzenettel és egy OK gombbal a felhasználó képernyőjén. Használható fontos információk továbbítására a felhasználó felé.

ablak.alert(Paraméter_1);

Az alert() metódusnak egy kötelező paramétere van, ez a párbeszédpanelen megjelenő üzenet szövege. Ez a módszer végrehajtása következtében semmit nem ad vissza.

Például jelenítsen meg egy figyelmeztető párbeszédpanelt egy webhelylátogató számára, amikor egy hivatkozásra kattint: Ugrás a weboldalra

megerősítés() metódus

Az ablakobjektum megerősítése() metódusának célja egy párbeszédpanel megjelenítése a megadott üzenettel, valamint az OK és a Mégse gombokkal a felhasználó képernyőjén. A megerősítő ablak segítségével engedélyt kérhet a felhasználótól egy művelet végrehajtásához.

var resultConfirm = megerősítés(Paraméter_1);

Ennek a módszernek egy paramétere van - az üzenet szövege, amely megjelenik a párbeszédpanelen.

A megerősítés() metódus két érték egyikét adja vissza a végrehajtás eredményeként (resultConfirm):

  • igaz, ha a felhasználó az OK gombra kattintott;
  • false, ha a felhasználó a Mégse gombra kattintott vagy bezárta.

Például jelenítsük meg a p elemben az id="resultConfirm" paraméterrel azt az eredményt, amikor a felhasználó a párbeszédablakban az "OK" gombra kattint:

prompt() metódus

A prompt() metódus célja, hogy egy párbeszédpanelt jelenítsen meg üzenettel, egy szövegmezővel az adatok beviteléhez, valamint az "OK" és a "Cancel" gombokkal a felhasználó képernyőjén. Célja, hogy adatokat kérjen a felhasználótól.

var eredményPrompt = prompt(Paraméter_1, Paraméter_2);

Ennek a módszernek két paramétere van:

  • üzenet jelenik meg a párbeszédpanelen. Ez a paraméter kötelező, és egy üzenetet tartalmaz, amely "megmondja", hogy a felhasználónak milyen adatokat kell beírnia a szövegmezőbe;
  • a második paraméter nem kötelező, és segítségével megadható a kezdeti érték, amely a párbeszédpanel beviteli mezőjében jelenik meg megnyitáskor.

A felhasználó műveleteitől függően a prompt() metódus a következő adatokat adhatja vissza:

  • szöveges érték - ha a beviteli mező adatokat tartalmaz, és a felhasználó az "OK" gombra kattintott;
  • üres karakterlánc - ha a beviteli mező nem tartalmaz adatokat, és a felhasználó az "OK" gombra kattintott;
  • null - ha a felhasználó a "Mégse" gombra kattintott, vagy bezárta ezt az ablakot, nem számít, milyen adatokat írt be a szövegmezőbe.

Megjegyzés: Az alert() , confirm() vagy prompt() metódusok valamelyikének végrehajtása eredményeként megjelenő párbeszédpanel modális, azaz. blokkolja a felhasználó hozzáférését a szülőalkalmazáshoz (böngészőhöz), amíg a felhasználó be nem zárja a párbeszédpanelt.

Például egy nevet kérünk a felhasználótól, és az eredménytől függően megjelenítjük a szöveget a c id="nameUser" elemben:

Például kérjük meg a felhasználót, hogy találja ki a 8-as számot:

... Találd ki a számot

Egy webes erőforrás látogatójával párbeszédet lehet szervezni különböző utak, melynek felhasználása JavaScript funkciók az alert() a legegyszerűbb és leggyorsabb lehetőség. Ez a lehetőség különösen jó tesztelési célokra, de sok erőforrásnál természetes funkcióként használják.

A JavaScript alert() függvény lehetővé teszi, hogy igenlő választ kapjon. Valójában nem a válasz a fontos, hanem maga az információkibocsátás ténye. Ezenkívül a webes erőforrás működése megszűnik, amíg a felhasználó nem válaszol. A riasztásra adott válasz mindig ugyanaz – ez a válasz!

Hibakeresési célokra a JavaScript alert() tökéletes eszköz a naprakész információk gyors megszerzéséhez, a döntés meghozatalához és a munka folytatásához. De az oldal normál működése szempontjából jó néhány előnye is van.

A látogató figyelmének lekötése

"Riadó" - mint az életben, ez is olyan eseményt képez, amely mellett nem lehet elmenni. De ez az esemény megtörténhet vagy nem..

Egy ritka fejlesztő tudatában van ennek a körülménynek, és fájdalmasan hosszan keresi a webhelyét az ügyféloldalon. Ugyanakkor kevés fejlesztő nem tudja: gyakran olyan nehéz hibát találni az ügyfélben, vagyis a böngészőben, hogy:

  • órák értékes időt veszítenek el;
  • hihetetlen kódtranszformációk költenek el;
  • sok szkriptet lapátolnak, szóval a böngésző és a szerver is megkapja.

És nincs eredmény. Nem segítenek sem a hibakeresők, sem a szavak, sem a minden böngészőbe beépített hibakereső eszköz. Eközben a láda mindig csak kinyílik – a megfelelő kulcs a fontos.

A helyes kód egyszerű szabálya

Először is, a cookie-k a modern webhelyek legkeresettebb összetevőjévé váltak. Soha nem szabad elfelejteni:

  • JavaScript figyelmeztetés és dokumentum cookie
  • "itt és most" és "egyáltalán vagy egyszer".

A cookie-k egy nagyszerű funkció, amelyet a böngésző mélyén meg kell jegyezni minden egyes kliensről, de nem szabad ennek jelentőséget tulajdonítani az aktuális munkamenetben. A sütik fő célja, hogy a böngésző „memóriájában” maradjanak abban a tartalomban, amely a látogató kilépésekor volt.

Minden más tekintetben a böngészőben található szkriptkód csak önmagától és az általa feldolgozott eseményektől függ.

Ebben az összefüggésben, és ez a kontextus ideális itt, a kód nem működhet, ha helyesen van megírva. Ez az ideális szabály a helyes kódhoz. Ha a böngésző üres képernyőt mutat, vagy valamit rosszul csinál, akkor okkal feltételezhető, hogy hiba történt.

Könnyebben alkalmazható:

  • JavaScript alert ("Eddig minden rendben volt!").

A legjobb hibakereső vagy hibakereső olyan esemény, amelynek meg kell történnie de nem történik meg.

Ha ezt a konstrukciót nulláról egy bosszantó bűncselekményre helyezi át a kódban, megtalálhatja azt a helyet, amely után nem működik. A hiba meg lesz találva. JavaScript alert() van modális ablak. Ezt semmilyen módon nem lehet megkerülni, és semmi sem történik addig, amíg a fejlesztő/látogató be nem zárja ezt az ablakot.

Ha az ablak nem jelenik meg, akkor vagy hibásan van feltüntetve a kódban, vagy minden, ami előtte van, hibát tartalmaz.

Nehéz helyzet, amikor a figyelmeztető JavaScript nem működik

Ez elsősorban a szerverrel való információcserére szolgáló AJAX algoritmusokra vonatkozik. Nem mindig elfogadható a klasszikus hibakereső eszközök használata itt, és amikor a kliens oldalon réteges rendszer objektumokat, akkor a hibakeresés általában a fejlesztő elméjévé válik, és semmilyen hibakereső nem tud segíteni.

A legjobb lehetőség a riasztásra a szerverrel való kommunikáció során a div (div), amelyben a szerverrel az innerHTML módszerrel történő kommunikáció protokollja van elhelyezve - mindig világos lesz, hogy a probléma melyik szakaszában jelentkezik.

Az oldalon mindig látható statikus div nem JavaScript-riasztási mód. Előfordulhat, hogy az ablak nem jelenik meg, és ennek számos oka lehet, és ezek szintaktikailag helyesek. A böngésző nyelve rendkívül nyugodt beállítottságú, és soha nem tesz semmit, ha nem elemzett és nem ért meg valamit.

Bármelyik statikus természete HTML tag jó tényező. Távolítsa el az összes kódot, és adja hozzá részletekben, amíg a hiba ismét meg nem jelenik – nem a legjobb gyors technológia hibakereséshez. A helyes írás népszerű tanács, igényes, de nem praktikus.

A böngésző nyelve eseményvezérelt, fő gondja nem a szekvenciális kód, hanem az oldalcímkékhez és eseménykezeléshez rendelt funkciók végrehajtása.

Kiegészítő szabály egy egyszerű szabályhoz

Ha a JavaScript alert ablaka ("Eddig minden helyesen van megírva") nem jelent meg a böngészőben, az azt jelenti, hogy a szintaxis egészen addig a helyig, ahol ez a konstrukció meg van írva, nem kelt kétséget a böngészőben, és helyesen fut.

Logika modern stílus a betűknek van egy jelentős hátránya. Az összes oldalfájl (lényegével és típusaival együtt) egy egésszé egyesül, és ezt követően felépül a DOM. A fájlok csatlakoztatásának sorrendje gyakran jelentős.

A legjobb, ha a fejlesztő nem tulajdonít jelentőséget az eseményekhez rendelt funkciók végrehajtásának megszervezésének eseményelvének, hanem az összes funkciót az alkalmazásuk sorrendjében rendezi, illetve az oldalcímkékhez és eseményekhez való hozzárendelésüket.

A sorrend mindig a legfontosabb. A többit a JavaScript magától kitalálja: mit és mikor hívjon. A modern programozás általában és minden módszerrel összefüggésben, különösen minden magasan szervezett objektumorientált megközelítésben mindig konzisztens. mindig szekvenciálisan kombinálódnak a leírtak szerint.

Ha valami nem történik, az azt jelenti: nem valahol valami nincs rendben, hanem csak ezen a helyen.

  • ablak objektum metódusok;
  • alert() metódus: rövid összefoglaló;
  • megerősítés() metódus - betűk írása;
  • prompt() metódus - ismerkedjünk meg, Stirlitz vagyok.

Szóval, böngésző objektumok. És mindenekelőtt - a legrégebbi közülük, az objektum ablak.

Itt vannak az objektum fő metódusai ablak(rajtuk kívül van még más is, de nem sok haszna van, és hogy ne zsúfoljam el az agyat felesleges információkkal, ezeket a harmadik sorozatra halasztom).

Módszer

Leírás

Nyissa meg és zárja be a böngészőablakokat; meg lehet határozni az ablak méretét, tartalmát, valamint a jelenlétét billentyűzet, címmezők és egyéb attribútumok.

Riasztási párbeszédpanel megjelenése a megfelelő üzenettel.

Megerősítő párbeszédpanel megjelenése az "OK" és a "Mégse" gombokkal.

Egy szövegbeviteli mezőt tartalmazó prompt párbeszédpanel megjelenése.

Fókusz beállítása vagy eltávolítása ablakhoz.

Egy ablak tartalmát egy adott pontra görgeti.

A függvényhívás és a kifejezés kiértékelése közötti időintervallum beállítása.

Egy időintervallum beállítása függvényhívás vagy kifejezés kiértékelése előtt.

Ezt már tudjuk ablak gyakran utalva, de nem írva.

Különféle párbeszédpanelek előhívása

A párbeszédpaneleket a programok a felhasználóval való interakcióhoz használják.

alert() metódus

Tanulmányaink legelején elemeztük. Egy egyszerű párbeszédpanelt hoz létre egy üzenettel és egy OK gombbal. Minden interakciója arra korlátozódik, hogy a felhasználó egyetlen gomb megnyomásával el tudja küldeni ezt az ablakot valahova messzire (és köszönet érte).

megerősítés() metódus

Módszer megerősít() már lehetővé teszi a felhasználó számára, hogy meghozza a legegyszerűbb "logikai" döntést: "igen" vagy "nem"-et mondjon.

Például kattintson erre a gombra:

Elnézést a kis csínytevésért. Remélem tudod, hogyan kell használni a vissza gombot.

Hogyan van elrendezve? Természetesen láttad, hogy ezt a módszert riasztásokkal kombinálom. És ez a beillesztett függvény segítségével történik .

A metódus két értéket ad vissza: igaz(ha rendben van) és hamis(lemondás esetén).

BAN BEN igaz elküldjük a megfelelő oldalra (tulajdon href tárgy elhelyezkedés), és adja ki a megfelelőt éber(). Ellenkező esetben (pl. hamis) csak adjon ki egy másikat éber().

A gombban pedig meghívjuk a függvényt az eseményben kattintásra:

Ezután meg kell hívnia ezt a függvényt az eseménykezelőből onSubmit címke

, Például:

"http://narod.yandex.ru/send-poll.xhtml" method="post" onSubmit= "visszaigazolási művelet()" >

Itt például felírhatsz nekem a "szappanra" mindent, amit az óráimról gondolsz. Ha hirtelen izgatott lett, megnyomta a gombot, majd valahogy kínossá vált, felugrik egy párbeszédablak, és kijózanítja.

Ha előugró ablakokat jelenít meg, célszerű figyelmeztetni a felhasználót, és megadni neki választási lehetőséget, hogy megnyitja-e az ablakot vagy sem. Ehhez az ablak betöltése előtt el kell engednie a "parlamenter" - párbeszédpanelt megerősít(). Innen hívják a függvényt . Erről hamarosan szó lesz, amikor áttérünk az ablakok létrehozására a módszerrel nyisd ki().

prompt() metódus

Ez a módszer már konkrét adatokat kér a felhasználótól. Megjelenik egy párbeszédpanel egy beviteli mezővel. A metódus visszaadja a felhasználó által ebbe a mezőbe beírt adatokat, és lehetővé teszi a program számára, hogy ezekkel az adatokkal dolgozzon.

A módszernél gyors() két argumentum: egy kérdés (amely a beviteli mező felett jelenik meg) és egy válasz (a szöveg a beviteli mezőben):

Ha azt szeretné, hogy a beviteli mező tisztának tűnjön, tegyen üres idézőjeleket második argumentumként:

gyors("kérdés szövege","")

Lássuk ezt működés közben. Nyomd meg a gombot, ne félj.

Tehát adatokat adott meg (vagy nem adott meg), és ezek alapján (vagy ezek hiányában) kapott választ a számítógéptől.

Íme ennek a funkciónak egy egyszerű változata:

Ingatlan innerHTML, amely lehetővé teszi a címke tartalmának szabályozását, a 10. leckében találkoztunk, amikor a képek alá programoztuk a neveket.

És itt van a gomb kódja és az üdvözlés üres bekezdése.


De ha kiderült, hogy a névrokonom vagy, akkor láttad, hogy a funkció erre is reagált.

Hogy ezt a "durva" változatban hogyan kell megtenni, azt már maga is sejtheti. A változót ellenőrizni kell felhasználónév nem csak az üres idézetekre, hanem a " Andrey", és adjon hozzá még egyet ha megfelelő szöveggel (gyakorolhatod magad is).

De ha beírod, hogy " Andrey", "Andryusha", "Andryushka", "Andriukha", "Andrejka", "Andrej Ivanovics" stb., akkor hasonló lesz az eredmény, bár nem kifejezetten mentem végig ezeket az értékeket, hanem csak öt sort sikerült: " Andre", "András", "András", "Andreiche"És" Andreichu"(az utolsó három - annak érdekében, hogy kizárják Andreevet, Andreichenkot és Andreichukot a névadók közül, miközben Andreichikot megtartják a névrokonokban).

Vagyis sejthető, hogy a függvény ellenőrzi a változót felhasználónév az első 5, 6 vagy 8 karakterhez.

De erről egy kicsit később lesz szó, amikor áttérünk a string objektumokra és módszereikre. Csak azt szeretném, ha előre elképzelné a megoldandó feladatokat (különösen a karakterláncok alkarakterláncokra való felosztását). Akkor maguk a döntések világosabbnak tűnnek. De ha nem bírod kivárni, akkor "kimásolhatod" a függvényt a kódból és "elvághatod, mint egy diót". A kíváncsiak kedvéért írtam oda kommentet.

Módszer gyors() jelszó megadására is használható.

Ezzel még nem ér véget a lecke!

„Játsszunk kémet”, hogy befejezzük a fejezet elolvasását. Először próbálja meg megnyomni a gombot, és beírni valamit.

Ah, ez az! De nézd, van még egy gomb! Gyerünk...

Jelszó:

Nyomja meg újra az első gombot, és írja be a helyes jelszót.

Ennek a mulatságnak talán van hatása, de valójában a jelszó megnyomásával megtalálható jobb gombés kódban nézegeti. Egyesek naivan azt gondolhatják, hogy elég egy külön .js fájlba tenni a kódot. De az oldal kódjában lesz egy link erre a fájlra a címmel. És ha betárcsázod címsor, akkor megnyílik egy JavaScript kóddal rendelkező fájl :)

Lehetséges kódban titkosítani a jelszót? Megteheti, de ehhez ismét karakterlánc-manipulációra van szükség, valamint néhány matematikai módszer használatára. Ha mindehhez eljutunk, tanulmányozzuk az „igazi” jelszószkriptet is. De a felhasználói interakciós technika továbbra is ugyanaz lesz: a módszer gyors(). (Lehetőség van „feltörni” egy titkosított jelszót? Sajnos a hackerek tökéletességének nincs határa...)

Ugyanúgy, ahogy a nevet vagy annak hiányát „elkaptuk”, a jelszót a funkcióval fogjuk meg.

Ha helytelen jelszót ad meg, vagy nem ír be semmit, a sor

document.getElementById("no").style.display = "blokk"

megnyitja a blokkot a második gombbal

És ha a helyes jelszót adjuk meg, a művelet átkerül a karakterláncba

document.getElementById("igen").style.display = "blokk",

amely megnyitja a következő blokkot

Megállj, mik azok a kryakozubry? Ez egy egyszerű rejtjel, hamarosan elmagyarázom.

Addig is megadom ezeknek a blokkoknak a kódját (az áttekinthetőség kedvéért kihagyom a keretes táblázatot, amit az utolsó blokkba mellékeltem):


"no" style="display: none;" >

Ah, ez az! De nézd, van még egy gomb! Gyerünk...




"mypassword" style="display: nincs;" >

Jelszó:


Nyomja meg újra az első gombot, és írja be a helyes jelszót.



"yes" style="display: none;" >

Most olvasunk tovább.


. . . . .
. . . . .

Szóval a titkosításról. Nagyon nyomorult. Bármi, funkciók ismerete menekülni()És unescape(), azonnal feltöri.

Funkció escape ("írja be ide")átalakítja a karaktereket hexadecimális értékükre.

Funkció unescape ("szúrja be a quackaubereket") az ellenkezőjét teszi.

A jelszó ily módon történő titkosításához otthon kell áthajtania menekülni(), másolja ki az eredményt, és illessze be unescape(). De ez, ismétlem, nem komoly.

Hát azért teljes készlet- a második gomb funkciója:

Kimeneti szabványhoz párbeszédpanelek A JavaScript csak három módszerrel rendelkezik, amelyeket ma megtanultunk. Bár ezek a módszerek nem túl gyakran fordulnak elő, a magabiztos használatuk képessége rendkívül hasznos. Egyszerűek, de ugyanakkor, hogy úgy mondjam, „tiszta” programozás. Nagyon jók a programozási nyelv elsajátításában. És azt tanácsolom, hogy minden lehetséges módon kísérletezzen velük, még ha pragmatikus szempontból céltalanul is. jó programozás- Ez egy izgalmas játék, mint minden kreativitás.