Javascriptová výzva s podmínkou. Popis metod upozornění, potvrzení a výzvy v JavaScriptu. Trvalý útok XSS

💖 Líbí se vám? Sdílejte odkaz se svými přáteli

V tomto článku se naučíme tři zajímavé metody, a to metody alert(), potvrdit() a prompt(). Všechny jsou navrženy pro interakci s uživatelem.

Všechny tyto tři metody patří do objektu okna (okno prohlížeče). A mohou se nazývat takto: window.metoda_name(); JavaScript nám ale umožňuje nespecifikovat tento objekt okna, ale jednoduše napsat název metody.

Začneme s metodou alert(). Tato metoda zobrazí zadanou zprávu v okně prohlížeče uživatele. Toto okno se objeví v horní části celé stránky a dokud uživatel neklikne na tlačítko OK, nezavře se.

Pro demonstraci zobrazme zprávu pomocí metody alert().

Var today_is = "pondělí"; alert("Dnes " + dnes_je);


Uvnitř metody můžeme zadat libovolný řetězec, jen bez html značek. Nejsou zde zpracovávány, ale jsou zobrazeny tak, jak jsou.

Pokud je řádek, který chceme označit, velmi dlouhý a chceme vytvořit nový řádek, pak je zde značka html
nebude fungovat. Zde musíte použít znak "\n".

Alert("Loooooooooong \nStringgggggg");


Tato metoda se často používá k nalezení chyb v kódu.

Proces zpracování kódu probíhá shora dolů, takže abychom zachytili chybu, jednoduše zapíšeme metodu alert() do očekávané oblasti, kde se chyba nachází. A pokud alert() fungovalo, pak nejsou žádné chyby až do řádku, kde je zapsáno.

Dále jej musíte posunout o jeden nebo více řádků níže. Uložíme změny, znovu obnovíme stránku v prohlížeči a podíváme se, zda alert() fungovalo, pak nejsou žádné chyby až do řádku, kde se nachází, jinak, pokud nefungoval, je chyba umístěna v řádek nad čarou, kde se aktuálně nachází. Takto můžete najít chybu v kódu.

metoda potvrdit().

Tato metoda se používá k potvrzení odpovědi na otázku. Existují pouze dvě možnosti odpovědi, ano (OK) nebo ne (Zrušit). Pokud uživatel odpoví ano, pak metoda vrátí true, jinak vrací false.

Například pomocí metody potvrzení() zobrazíme okno, kde se uživatele zeptáme: "Opravdu chcete opustit stránku?" Pokud uživatel odpoví ano, pak prostřednictvím metody alert() zobrazíme následující zprávu „Uživatel chce opustit stránku“, v opačném případě zobrazíme další zprávu „Uživatel stránku NECHCE opustit“.

Var user_answer = potvrdit("Opravdu chcete opustit stránku?"); if(user_answer) alert("Uživatel chce opustit stránku"); else alert("Uživatel NECHCE \nopustit stránku");


Takto funguje metoda potvrdit(). Dá se použít při různých příležitostech. Před odstraněním něčeho z webu je například zvykem zeptat se uživatele, zda si je jistý svým jednáním. Nebo se před odesláním formuláře můžete také zeptat uživatele „Vyplnili jste vše správně?“ Pokud odpoví ano, bude formulář odeslán, jinak nebude odeslán.

metoda prompt().

Poslední metodou, kterou se naučíme, je metoda prompt(). Tato metoda se používá méně často než ostatní dvě metody. Umožňuje přijímat od uživatele některé informace, které zadá do textového pole.

Výsledkem je, že metoda prompt() vrátí buď zadaný řetězec, pokud uživatel klikl na tlačítko OK, nebo hodnotu null, pokud uživatel klikl na tlačítko Storno.

Jako parametr, tedy do závorek této metody, můžeme napsat orientační řádek nebo otázku, aby uživatel věděl, jaké informace je třeba zadat.

Požádejme například uživatele, aby odpověděl na otázku "Jak se jmenuješ?" Jméno zadané uživatelem se zobrazí na obrazovce pomocí metody alert().

Var name = prompt("Jak se jmenuješ?"); alert("Vaše jméno je " + jméno);

Uložte a otevřete stránku v prohlížeči.


Do textového pole můžete samozřejmě zadat jakékoli informace z metody prompt(). Tato informace bude vrácena jako řetězec, a to i v případě čísel nebo jiných speciálních znaků.

Požádejme například uživatele, aby zadal dvě čísla a poté je vynásobil. Na násobení čísel bude jakási kalkulačka.

Var x = prompt("Zadejte první číslo:"); var y = prompt("Zadejte druhé číslo:"); //Převod zadaných čísel z řetězcového typu na číselný typ x = Number(x); y = Číslo(y); document.write(x + " * " + y + " = " + (x * y));

Zadaná čísla jsou řetězce, takže pro správný výsledek násobení je třeba tato čísla předat funkcí Number(), která je převede z typu řetězce na normální čísla.

No, to je vše. Nyní znáte další tři metody: alert(), potvrdit() a prompt(). Které můžete bezpečně použít v praxi.

  • metody okenních objektů;
  • metoda alert(): krátké shrnutí;
  • metoda potvrdit() - psát písmena;
  • metoda prompt() - pojďme se představit, jsem Stirlitz.

Tedy objekty prohlížeče. A za prvé - nejstarší z nich, objekt okna.

Zde jsou hlavní metody objektu okna (kromě nich existují další, ale málo používané, a abych si nezahltil mozek zbytečnými informacemi, odložím je až na třetí sérii).

Metoda

Popis

Otevírání a zavírání oken prohlížeče; Je možné určit velikost okna, jeho obsah a také přítomnost panelu tlačítek, pole adresy a dalších atributů.

Zobrazí se dialogové okno alarmu s odpovídající zprávou.

Zobrazí se potvrzovací dialogové okno s tlačítky „OK“ a „Zrušit“.

Zobrazí se dialogové okno s nápovědou s polem pro zadání textu.

Nastavte nebo odeberte fokus pro okno.

Posune obsah okna k určitému bodu.

Nastavení časového intervalu mezi voláním funkce a vyhodnocením výrazu.

Nastavuje jednorázový časový interval před voláním funkce nebo vyhodnocením výrazu.

Již víme, že okno je často implikované, ale ne napsané.

Vyvolání různých dialogových oken

Dialogová okna se v programech používají k interakci s uživatelem.

metoda alert().

Podívali jsme se na to hned na začátku studia. Vytvoří jednoduché dialogové okno se zprávou a tlačítkem OK. Veškerá jeho interakce se omezuje na to, že uživatel stisknutím tohoto jediného tlačítka může toto okno odeslat někam daleko (a za to mu děkujeme).

metoda potvrdit().

Metoda potvrzení() již umožňuje uživateli učinit jednoduché „booleovské“ rozhodnutí: říci „ano“ nebo „ne“.

Klikněte například na toto tlačítko:

Omlouvám se za malý žert. Doufám, že víte, jak používat tlačítko Zpět.

Jak to celé funguje? Samozřejmě jste viděli, že jsem tuto metodu kombinoval s upozorněními. A to se provádí pomocí funkce, která je vložena do .

Metoda vrací dvě hodnoty: true (pokud je v pořádku) a false (pokud je zrušení).

Když je nastaveno na true, odešleme jej na příslušnou stránku (vlastnost href objektu location) a vytiskneme odpovídající alert() . V opačném případě (tj. false ) jednoduše vytiskneme další alert() .

A v tlačítku voláme funkci v události onClick:

A pak musíte tuto funkci zavolat z obsluhy události onSubmit značky, například:

Zde mi například můžete poslat e-mailem vše, co si myslíte o mých lekcích. Pokud jste se náhle vzrušili a stiskli tlačítko, a pak to bylo nějak trapné, objeví se dialogové okno a vystřízliví vás.

Pokud vytváříte vyskakovací okna, pak je dobrým zvykem na to uživatele upozornit a dát mu na výběr - okno otevřít nebo neotevřít. Chcete-li to provést, před načtením okna musíte uvolnit „parlamentní“ - dialog potvrzení (). Zde se funkce volá z . O tom si povíme velmi brzy, až přejdeme k vytváření oken pomocí metody open().

metoda prompt().

Tato metoda již od uživatele vyžaduje konkrétní údaje. Zobrazí se dialogové okno se vstupním polem. Metoda vrací data, která uživatel zadal do tohoto pole a umožňuje programu s těmito daty pracovat.

Metoda prompt() má dva argumenty: otázku (která se zobrazí nad vstupním polem) a odpověď (text ve vstupním poli):

Pokud chcete, aby vstupní pole vypadalo prázdné, vložte jako druhý argument prázdné uvozovky:

výzva(" text otázky","")

Podívejme se na to v akci. Stiskněte tlačítko, nebojte se.

Takže jste zadali (nebo nezadali) data a obdrželi jste odpověď z počítače na základě těchto dat (nebo jejich nedostatku).

Zde je jednoduchá verze této funkce:

S vlastností innerHTML, která nám umožňuje ovládat obsah tagu, jsme se setkali v lekci 10, kdy jsme programovali názvy pod obrázky.

A zde je kód tlačítka a prázdný odstavec pro pozdrav.


Ale pokud jste náhodou můj jmenovec, viděli jste, že funkce reagovala i na toto.

Jak to udělat v „hrubé“ verzi, už můžete hádat sami. Musíte zkontrolovat proměnnou user_name nejen pro prázdné uvozovky, ale také pro " Andrey“, a vložte další if s příslušným textem (můžete si to procvičit sami).

Ale pokud napíšete " Andrey", "Andryusha", "Andryushka", "Andryukha", "Andreyka", "Andrej Ivanovič" atd., pak bude výsledek podobný, i když jsem výslovně neprošel všechny tyto hodnoty, ale vystačil jsem s pouze pěti řádky: " Andre", "Andrew", "Andrey", "Andrejce" A " Andreich"(poslední tři - vyloučit Andreeva, Andreichenka a Andreychuka z jejich jmenovců a zároveň zachovat Andreichika jako jmenovce).

To znamená, že můžete hádat, že funkce kontroluje proměnnou user_name na prvních 5, 6 nebo 8 znaků.

O tom si ale povíme trochu později, až přejdeme k řetězcovým objektům a jejich metodám. Chci jen, abyste si předem představili problémy, které musíme vyřešit (zejména všemožné rozdělování řetězců na podřetězce). Pak se samotná rozhodnutí budou zdát jasnější. Pokud se ale nemůžete dočkat, můžete funkci „zkopírovat“ z kódu a „uříznout ji jako ořech“. Pro zvědavce jsem tam napsal komentář.

Pro zadání hesla lze také použít metodu prompt().

Tím lekce nekončí!

Pojďme si trochu „zahrát na špiona“, abychom tuto kapitolu dočetli až do konce. Nejprve zkuste stisknout tlačítko a něco napsat.

Ach, to je ono! Ale podívejte, je tu další tlačítko! no tak...

Heslo:

Znovu stiskněte první tlačítko a zadejte správné heslo.

Všechna tato sranda možná má svůj vliv, ale ve skutečnosti heslo zjistíte stisknutím pravého tlačítka a podíváte se na něj v kódu. Někdo si může naivně myslet, že stačí dát kód do samostatného .js souboru. Ale v kódu stránky bude odkaz na tento soubor s uvedením adresy. A pokud to napíšete do adresního řádku, otevře se soubor s JavaScript kódem :)

Je možné zašifrovat heslo v kódu? Je to možné, ale to opět vyžaduje manipulaci s řetězci spolu s použitím některých matematických metod. Až se k tomu všemu dostaneme, prostudujeme si také „skutečný“ skript hesel. Ale technika interakce s uživatelem bude stále stejná: metoda prompt(). (Je možné „prolomit“ šifrované heslo? Bohužel, dokonalosti hackerů se meze nekladou...)

Stejně jako jsme „chytili“ jméno nebo jeho absenci, zachytíme s funkcí i heslo.

Pokud zadáte špatné heslo nebo nezadáte nic, řádek

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

otevře blok druhým tlačítkem

A pokud je zadáno správné heslo, akce se přenese na linku

document.getElementById("yes").style.display = "blok" ,

který otevře další blok

Počkat, co je tohle za drsný bizon? Toto je jednoduchý šifrovací kód, brzy ho vysvětlím.

Mezitím uvádím kód pro tyto bloky (pro přehlednost vynechávám tabulku s rámečky, kterou jsem přiložil do posledního bloku):



Ach, to je ono! Ale podívejte, je tu další tlačítko! no tak...





Heslo:

document.write(unescape( "%u043C%u043E%u044F%20%u043F%u0440%u0435%u043A%
u0440%u0430%u0441%u043D%u0430%u044F%20%u043B%u0435%u0434%u0438"
))


Znovu stiskněte první tlačítko a zadejte správné heslo.




Nyní čtěte dál.


. . . . .
. . . . .

Takže o šifrování. Je dost nešťastná. Každý, kdo zná funkce escape() a unescape(), to může okamžitě hacknout.

Funkce escape("sem zadejte řetězec") převede znaky na jejich hexadecimální hodnoty.

Funkce unescape("sem zadejte crackling bison") dělá opak.

Chcete-li heslo zašifrovat tímto způsobem, musíte ho doma spustit pomocí escape(), zkopírovat výsledek a vložit do unescape() . Ale toto, opakuji, není vážné.

No, pro kompletní sadu - funkce pro druhé tlačítko:

Pro zobrazení standardních dialogových oken má JavaScript pouze tři metody, které jsme se dnes naučili. Ačkoli se tyto metody nepoužívají příliš často, schopnost sebevědomě je používat je nesmírně užitečná. Jsou jednoduché, ale zároveň patří takříkajíc k „čistému“ programování. Jsou velmi dobré pro učení programovacího jazyka. A radím vám s nimi všemožně experimentovat, i když z pragmatického hlediska bezcílně. Dobré programování je zábavná hra, stejně jako každá kreativní činnost.

A opět vás vítám u dalšího tématu věnovaného jazyku JavaScript, ve kterém rozebereme metody alert, prompt, confrim. Tyto metody jsou zabudovány do jazyka Javascript a pomáhají nám při interakci s uživatelem.
Alert zobrazí na obrazovce prohlížeče okno s určitými informacemi, které pozastaví skript, dokud uživatel neklikne na OK.
Výzva obvykle zobrazí okno, které se uživatele zeptá na otázku, na kterou musí odpovědět v konkrétním textovém poli před kliknutím na tlačítko OK. Uživatel také nemůže nic zadat stisknutím tlačítka Storno.
Potvrdit také zobrazí okno, ve kterém uživatel již nemůže nic zadávat do textového pole, ale může pouze kliknout na OK nebo zrušit.
A nyní, po krátkém úvodu, přejděme ke zvážení všech výše uvedených v praxi.



upozornit, upozornit, potvrdit



alert("Dobrý den, milý uživatel!" );
var nameUser = prompt("Vaše jméno?" , "jméno" );
var userAnswer = potvrdit("Opravdu chcete opustit stránky?" );



V důsledku toho, když obnovíme stránku prohlížeče, uvidíme okno s přivítáním uživatele. Po kliknutí na OK se zobrazí následující okno s dotazem na vaše jméno. Tato metoda má dva parametry, první je povinný a je zodpovědný za titulek, který se zobrazí, v našem případě je to otázka uživatelského jména. A druhý parametr je zodpovědný za hodnotu, která se bude standardně zobrazovat v textovém poli. Pokud zadáte své jméno a kliknete na OK, vaše jméno bude umístěno do proměnné nameUser. Pokud kliknete na tlačítko Storno, do proměnné se zapíše null.
A nakonec okno, které se uživatele zeptá, zda chce náš web opustit nebo ne. V případě souhlasu bude do proměnné umístěna logická hodnota true a v případě odmítnutí odpovídajícím způsobem false. To je vše, co potřebujete vědět o těchto metodách, uvidíme se v dalších lekcích!

V JavaScriptu existují tři základní operace, které umožňují přijímat od uživatele data pro další zpracování ve skriptech. Ty jsou varovné, rychlé a potvrzující. K čemu se používají, jak je používat a další nuance budou diskutovány později v tomto článku.

upozornění

Používá se k zobrazení modálního okna na obrazovce prohlížeče (to znamená, že uživatel nemůže na stránce nic klepnout, dokud toto okno nezavře. V tomto příkladu, dokud v okně neklikne na „OK“).

Po zobrazení zprávy obsažené ve výstraze se provádění skriptu pozastaví a obnoví se po zavření modálního okna.

Pokud je pole vyplněno a kliknete na OK, informace zadané uživatelem se vrátí do skriptu.

Syntaxe tohoto příkazu je poněkud komplikovanější než předchozí, protože umožňuje nastavit text zprávy uživateli a obsah pole pro zadání informací, které se ve výchozím nastavení zobrazí: vysledek = prompt(title , výchozí ); , Kde

  • title – zpráva, která se uživateli zobrazí v modálním okně. Argument je povinný.
  • výchozí – to, co se ve výchozím nastavení zobrazí v poli pro zadávání textu. Je také vyžadován, protože pokud není zadán, může to vést k chybám v některých prohlížečích. Pokud chcete ponechat pole pro zadání informací prázdné, nastavte výzvu následovně:

    var myTest = prompt("Jakékoli informace" , """);

Malý příklad použití promptu:

var year = prompt("V jakém roce jste ukončili univerzitu?", 2008); alert("Jste absolventem " + roku + "ročníku!" ) ;

Tento příkaz se obvykle používá ke shromažďování dat od uživatelů, která jsou nezbytná pro další práci skriptu.

potvrdit

Představuje také modální okno. Jak už z názvu asi tušíte, obvykle se používá ke koordinaci něčeho s uživatelem.

To je důvod, proč je navržen pro interakci, poskytuje uživateli tlačítka OK a CANCEL, která vracejí do skriptu booleovské hodnoty true a false Hodnocení: 4 (průměr 4 z 5).

V této lekci se seznámíme s metodami alert(), prompt() a potvrdit() objektu okna.

metoda alert().

Metoda alert() je navržena tak, aby zobrazila dialogové okno s upozorněním se zadanou zprávou a tlačítkem "OK" na obrazovce uživatele. Může být použit k předání důležitých informací uživateli.

window.alert(Parametr_1);

Metoda alert() má jeden povinný parametr – to je text zprávy, který se zobrazí v dialogovém okně. Tato metoda v důsledku svého provedení nic nevrací.

Zobrazme například dialogové okno s upozorněním pro návštěvníka webu, když klikne na odkaz: Přejděte na webovou stránku

Metoda potvrdit() Metoda potvrdit() objektu okna je navržena tak, aby zobrazila na obrazovce uživatele dialogové okno se zadanou zprávou a tlačítky OK a Storno. Pomocí potvrzovacího okna lze požádat uživatele o povolení k provedení konkrétní akce.

var vysledekPotvrdit = potvrdit(Parametr_1);

Tato metoda má jeden parametr – jedná se o text zprávy, která se zobrazí v dialogovém okně.

Metoda potvrdit() vrací jednu ze dvou hodnot jako výsledek svého spuštění:

  • true, pokud uživatel kliknul na "OK";
  • false, pokud uživatel klikl na Storno nebo jej zavřel.

Zobrazme například v prvku p s id="resultConfirm" výsledek kliknutí uživatele na tlačítko "OK" v dialogovém okně:

var resultActionUser = potvrdit("Uživateli, klikněte prosím na tlačítko OK."); if (resultActionUser) ( document.getElementById("resultConfirm").innerHTML = "Uživatel, děkujeme za kliknutí na tlačítko OK"; ) else ( document.getElementById("resultConfirm").innerHTML = "Uživatel, jsme zklamáni Vaším Odezva "; )

metoda prompt().

Metoda prompt() je navržena k zobrazení dialogového okna na obrazovce uživatele se zprávou, textovým polem pro zadávání dat a tlačítky "OK" a "Zrušit". Je navržen tak, aby vyzval uživatele k zadání dat.

var vysledekPrompt = prompt(Parametr_1, Parametr_2);

Tato metoda má dva parametry:

  • zpráva, která se zobrazí v dialogovém okně. Tento parametr je povinný a obsahuje zprávu, která „říká“, jaké údaje má uživatel zadat do textového pole;
  • druhý parametr je volitelný a lze jej použít k určení počáteční hodnoty, která se po otevření vytiskne do vstupního pole dialogového okna.

V závislosti na akcích uživatele může metoda prompt() vrátit následující data:

  • textová hodnota - pokud vstupní pole obsahuje data a uživatel klikl na "OK";
  • prázdný řádek - pokud vstupní pole neobsahuje data a uživatel klikl na "OK";
  • null - pokud uživatel klikl na "Storno" nebo zavřel toto okno, nezáleží na tom, jaké údaje byly zadány do textového pole.

Poznámka: Dialogové okno, které se zobrazí jako výsledek provedení jedné z metod alert() , potvrdit() nebo prompt() je modální, tzn. blokuje přístup uživatele k nadřazené aplikaci (prohlížeči), dokud uživatel nezavře dialogové okno.

Zeptejme se například uživatele na jméno a v závislosti na výsledku zobrazme text v prvku s id="nameUser" :

var nameUser = prompt ("Zadejte své jméno?"); if (nameUser) ( document.getElementById("nameUser").innerHTML = nameUser +", vítejte na webu!"; ) else ( document.getElementById("nameUser").innerHTML = "Host, vítejte na webu!" ;

Například požádejme uživatele, aby uhádl číslo 8:

funkce hádejteNumber() ( var findNumber = výzva ("Hádejte číslo od 1 do 10?"); switch (findNumber) ( případ "6": alert("Už je tepleji!"); break; případ "7": upozornění (" Je žhavé!"; přestávka "8": upozornění ("Hádali jste správně! Je to číslo 8": upozornění ("Už je tepleji!"); : alert("Je zima!" ) ) ... Hádej číslo

říct přátelům