javascript:window.confirm() Ako spravit krajsiu verziu? HELP

Programovacie jazyky, rady, poradňa...
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

javascript:window.confirm() Ako spravit krajsiu verziu? HELP

Príspevok od používateľa Mek »

Zdravim,
nepaci sa mi to okienko javascriptove - window.confirm - vyzera to skaredo, asi takto (vid priloha old.png)
Tak som sa pustil do toho, spravit vlastnu verziu, ktora bude dizajnovo zapadat do stranky. Myslim si, ze sa mi to celkom podarilo (vid priloha new.png).
Mam funkciu myconfirm() - to je ta moja JS funkcia, ktora otvori toto moje vlastne potvrdzovacie okienko. Potrebujem, aby tato funkcia vracala hodnotu true/false podla toho, ci bolo stlacene tlacitko Ano alebo tlacitko Nie, tak, ako je to u povodnej fcie confirm. Problem je, ze moja funkcia sa ukonci hned, ako sa zobrazi moje okienko, takze nemozem vracat hodnotu, ked este neviem, kam uzivatel klikne, na ktore tlacidlo.
Tak som to riesil tak, ze po stlaceni oboch tlacidiel sa zavola moja fcia closeconfirm(), ktora zavrie okno a v argumente berie 'yes' alebo 'no', podla toho, ktore tlacidlo bolo stlacene. Fcia closeconfirm() nastavi globalnu premennu result na true alebo false, takze v povodnom skripte sa staci opytat po zavolani myconfirm() na hodnotu premennej result.
Problem je ale, ze takto to nefungovalo. Moje confirm funkcie sa nachadzaju v inom JS subore, nez kde myconfirm a closeconfirm pouzivam - tipujem, ze to preto to takto nefungovalo.
Tak sa obraciam s poslednou nadejou sem na forum, dufajuc, ze mi niekto poradi (i ked pochybujem, ze sa niekomu bude chciet citat takyto post a rozmyslat nad nim).
Ka+ za pomoc zarucena!
Prílohy
myconfirm
myconfirm
window.confirm
window.confirm
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Ja by som to riešil tak, že by som po stlačení tých tlačítok zavolal funkciu na zrušenie toho okna. Mala by jeden paramater a v ňom by si predával funkciu, ktorá sa má vykonať po stlačení tlačítka (pravdepodobne by si zavolal funkciu, ktorá uloží nejaké cookies). Ale úplne presne sa ti asi nedá poradiť, kedže neviem, ako presne to máš urobené.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

na svojej stranke si sprav form, ktory bude mať iba jeden input. Bude typu hidden a bez hodnoty. Z druhej stránky ho cez js funkciu void() zmeníš, a potom si jeho hodnotu môžeš pozreť.. ukážka:

index.html

Kód: Vybrať všetko

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
    <a href="#" onclick="a=window.open('./alert.html','','width=700,height=300')" >vyvolaj alert</a>
    <form name=result>
      <input type=hidden name=result value="">
    </form>
    <a href=# onclick=alert(document.result.result.value);>zobraz vysledok</a>
  </body>
</html>
alert.html

Kód: Vybrať všetko

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title></title>
  </head>
  <body>
    <a href=# onclick=void(opener.document.result.result.value='true');window.close()>ok</a><br>
    <a href=# onclick=void(opener.document.result.result.value='false');window.close()>no</a>
  </body>
</html>
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

Bingo! Uz to funguje! :D :D
Spravil som to napokon tak, ze tej istej funkcii, z ktorej som volal myconfirm, som pridal este jeden parameter - a to taky, ktory urcoval, na ktory button bolo kliknute. No a potom som rozhodol na zaklade podmienky.
Kazdopadne chrono dik (o5) za ochotu pomoct, ka+, tema moze byt locked, ak k nej uz nikto nema co povedat :wink:

//edit: audiotrackovo riesenie sa mi zda lepsie, este skusim to ;)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Pri tom audiotrackovom riešení tam budeš musieť pridať kontrolu na blokovanie popup okien (aby sa zobrazila žiadosť o povolenie popup okien pre danú doménu).
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

hmm.. ja som to pochopil tak, že ten jeho alert je na samostatnej stránke, ktorá sa zobrazí len bez borderu.. no šak to je jedno, nech si vybere
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

...ja ziadne pop-upy neotvaram, bozechran :lol:
inak to audiotrackove riesenie je krajsie, ale zas som narazil na ten problem, ze som aj tak musel povodnu funkciu zavolat znova, v pripade, ze bolo stlacene Ano (tj. pokracovat). Skoda, ze nie je mozne javaskript pozastavit na chvilu vo funkcii myconfirm, az pokym uzivatel neklikne na nejake tlacitko, a potom by sa v spustani tej hlavnej funkcie pokracovalo. Nuz nechal som tam nateraz to moje komplikovanejsie riesenie, ale co, hlavne ze to funguje. Este aby sa to dalo pouzit viackrat, ale tym sa budem zaoberat zajtra, pre dnesok uz stacilo, akurat som sa pri tom nastval :evil:
impact
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 401
Registrovaný: 17 nov 2005, 16:04

Príspevok od používateľa impact »

Aj ked je uz problem vyrieseny, este by som pre dalsich odporucil Prototype Framework. Dokaze celkom pekne veci s okienkami (aj s modalnymi). Konkretne tento problem riesi Open a confirm dialog.
Mek
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4661
Registrovaný: 23 mar 2005, 23:00
Bydlisko: ZA <-> TN
Kontaktovať používateľa:

Príspevok od používateľa Mek »

Ano, ano, prototype window som skusal, ale nepodarilo sa mi ho rozbehat, tak som skoncil s tym, ze som si tieto funkcie zrobil sam. Dalsia nevyhoda prototype window je, ze dost nafukne stranku (okolo 70 kB javaskriptu navyse), a uz ked tam mam tinymce, ktore tiez nie je zrovna najmensie, nerad by som to este viac nafukoval 8)
Napísať odpoveď