Autor Zpráva
tomino
Profil
Ahoj,

při procházení Google Calendar a i jinde jsem narazil na takové krásné potvrzovací dialogy, při jejichž spuštění okolní prvky stránky trochu zblednou, nejde na ně kliknout a od uživatele se čeká potvrzení dialogu. Je to něco jako v normálních programech, kdy se otevře třeba nastavení a musím potvrdit nejdříve změny v tomto nastavení a pak pokračovat v práci v programu. Protože je obrázek výstižnější, tak ho předkládám. Rád bych věděl, jak udělat toto:

Tipuju si, že se to dělá nějakým způsobem v javascriptu nebo přes DOM. Jsou o tom nějaké články, jak se to naučit? Při psaní PHP aplikací by to výrazně urychlilo práci.

Předem dík*
WanTo
Profil
PHP aplikací by to výrazně urychlilo práci.
To bych netvrdil, stejně budeš muset vstup ošetřit i v PHP. Někdo může mít vypnutý JavaScript a poslat ti neplatné údaje, které mohou vytvořit bezpečnostní mezeru ve tvé aplikaci.

Kažodopádně by to mohlo trochu snížit zatížení serveru, to je pravda.
tomino
Profil
Někdo může mít vypnutý JavaScript a poslat ti neplatné údaje
Vstupy vždycky kontroluju a kontroloval bych je i tak a vypnutí javascriptu bych ošetřil. já jsem spíš než snížení zatížení serveru myslel urychlení uživatelovi práce. Doposud jsem to dělal s použitím funkce alert, ale výše zobrazený obrázek je elegantnějším řešením a já bych rád věděl, jak toho docílit.
WanTo
Profil
vypnutí javascriptu bych ošetřil
Jak?
tomino
Profil
kontrolou v PHP: příklad: kliknutím na odkaz se zapnutym javascriptem vyskočí hláška upozorňující na smazání (třeba) příspěvku. s vypnutým skriptem to napíšu prostřednictvím PHP. ale to se dostáváme od tématu ;-)
WanTo
Profil
Tak jestli to budeš kontrolovat jen takhle, ne i pomocí PHP, tak se s tebou vsadím, že donutím tvé stránky aby dělaly něco jiného než jsi zamýšlel ;-)

Jinak JavaScriptem to okýnko otevřeš jednoduše. Pomocí DOM vygeneruješ nový prvek na stránce, nastavíš mu position: absolute, left a top. Pak do něj pomocí DOM zase něco přidáš atd.
tomino
Profil
takže pomocí DOM se to dělá.. díky, podívám se na nějaké články o DOM

a k té kontrole: vždyť jsem výše psal, že kontrolu v PHP provádím, i když javascript funguje.. javascript beru jen jako prostředek pro zefektivnění práce a zvýšení komfortu. stránky musí fungovat i bez něj.
Leo
Profil
"Doposud jsem to dělal s použitím funkce alert, ale výše zobrazený obrázek je elegantnějším řešením a já bych rád věděl, jak toho docílit."

Na potvrzovaci okno neni alert, ale confirm. Samozrejme nema grafiku jako na Google, ale funguje stejne, Leo
WanTo
Profil
Tak sem si s tím trochu pohrál, už se mi otevírá pomocí DOMu vlastní okno. Akorát zavřít mi nejde, hlásí mi to nějakou šílenou chybu :-(
Leo
Profil
"Akorát zavřít mi nejde, hlásí mi to nějakou šílenou chybu :-("

S cimz vam pomuze jen ten, kdo krasne trpi telepatii :-) Leo
WanTo
Profil
JS vyhodí tuhle výjimku, když se pokusím provést příkaz document.body.removeChild(this.window). this.window je HTMLElement s oknem.

Chyba: uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLBodyElement.removeChild]" nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)" location: "JS frame :: file:///home/wanto/test/okno.html :: Alert_close :: line 10" data: no]
Leo
Profil
Co je to this.window, to si nejak nedokazu predstavit, vy mate to okno pojmenovane window? Leo
WanTo
Profil
Jinak celý zdroják je umístěný na http://wanto.czweb.org/blbosti/okno.html
Oswald
Profil
WanTo

this.ok = document.createElement("input");
...
this.ok.onclick = this.close;


Uvnitř té funkce ukazuje this na input, takže this.window je tam undefined.
WanTo
Profil
Oswald
Jasně, moc díky, už mi to funguje.

Stačilo přidat řádek this.ok.window = this.window;
tomino
Profil
Jinak celý zdroják je umístěný na [url=http://wanto.czweb.org/blbosti/okno.html
http://wanto.czweb.org/blbosti/okno.html
[/url]

pořád to nějak nefunguje. Prosím tě, nevíš o nějakém pěkném seriálu,který by se tomuhle věnoval? Našel jsem spoustu seriálu na javascript ale žádný na DOM
Toto téma je uzamčeno. Odpověď nelze zaslat.

0