Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Zelený je lopuch,
fotbal to je hra...

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub JavaScript [ŽP: neomezená] (kategorie Programování) moderuje Šéf Lopuchu.
Archiv
- http://al3x.3web.cz/js/ - najdete zde zaklady javascriptu je tam i docela dobre vysvetleny cookies
- specifikace ECMAScriptu - standard založený na JavaScriptu a JScriptu.
Download Opera
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: llblzuq
[ 398 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
david11 David11 - Bilbo..and the mouse police never sleeps 23.5.2011 13:19  610
huhSamozřejmě, že něco nevykresluji, abych to pak zahodil tím, že zavolám reload().
Jen jsem náhodou přišel na to, že IE mi tam to menu VRÁTÍ po tom zavolání reload(). Resp. chová se to v tom IE, podle mě takto:
- v BODY zavolám funkci zobraz(false), která vykreslí nejdřív bitmapu a pak menu.
- při události onresize zavolám funkci zobraz(true), která vykreslí bitmapu v jiné velikosti a místo znovuvykreslení menu zavolá reload(), což (v IE) způsobí, že se tam to menu opět objeví. Dělám to tak proto, protože pokud bych při onresize zavolal jak překreslení bitmapy, tak překreslení menu, nezafungovalo by to (jak v IE, tak ve FF). Pokud ve FF reloaduju ručně (kliknutím na tlačítko reload) - udělá to přesně to samé, jako v IE, tzn to menu se tam znovuobjeví. Jediný rozdíl mezi IE a FF v tomto případě je ten, že ve FF se to reload() nedá zavolat v ten okamžik kdy potřebuju z javascriptu, v IE ano.
mpts mpts Je to jinak, ba přesně naopak! 21.5.2011 10:01  609
David11 [607]: Já snad i chápu, co chceš udělat, i když ne tak úplně, proč to chceš udělat (přijde mi, že se drbeš levou rukou za pravým uchem), no ale především: všiml sis, že FF má i v základní instalaci chybovou konzoli, a že proň existují velmi užitečná rozšíření na ladění javascriptu? Možná by stačilo do té konzole jen nahlédnout a hned bys viděl, v čem je problém.
huh huh 20.5.2011 20:57  608
To naštěstí nechápu. Ty něco vykreslíš a pak to hned zahodíš tím, že zavoláš reload() ?
david11 David11 - Bilbo..and the mouse police never sleeps 20.5.2011 18:40  607
Jasně, tohle fungovat bude. Ja to používám složitějc a zřejmě jsem udělal něco, co IE (možná náhodou) udělá přesně tak, jak potřebuju a FF ne.

<BODY onresize="zobraz(true)">
<script>
zobraz(false);
</script>
</BODY>

Podle parametru true/false poznam, zda je to volano pri onresize nebo normalne pri zobrazovani stranky. Tohle reseni je "z nouze ctnost", ktera prave v tom IE zafungovala, a ted jsem zjistil, ze to nefunguje ve FF.

V ty funkci zobraz totiz mam jednak vykresleni bitmapy v zavislosti na velikosti okna a jednak vykresleni prvku menu, ktere mam ukotvene v levem hornim rohu. Pokud to volam s tim false, vykresluji jak bitmapu, tak menu. Potrebuji ale zareagovat zmenou velikosti bitmapy pokud uzivatel zmeni velikost okna. Tak jsem to navazal na tu udalost onresize, zmena velikosti bitmapy je OK, ale kdyz (jak v IE, tak v FF) po vykresleni bitmapy jeste zavolam vykresleni tech tlacitek, tak bitmapa zmizi a tlacitka se vykresli blbe. A prisel jsem na to, ze staci vykreslit pri te udalosti onresize pouze bitmapu a tlacitka se v okne objevi kdyz zadam rucne reload. Tak jsem to udelal tak, ze v pripade onresize vykreslim pouze bitmapu a javascriptem zavolam to reload. V IE to zafunguje, v FF ne (jako bych to reload nezavolal).

Mozna to vysvetluju blbe, ale snad to z toho jde pochopit ; - )
huh huh 20.5.2011 18:22  606
David11 [605]: Me tento minimalni priklad funguje OK i ve FF.
<script>
function f() {
document.getElementById('x').innerHTML = document.body.clientWidth
}
</script>
<body onresize="f()">
<div id='x'>xxxx</div>
54564564
</body>

Jinak, než se patlat s nekompatibilitama jednotlivejch prohlížečů, bych použil nějakou zavedenou knihovnu.
david11 David11 - Bilbo..and the mouse police never sleeps 20.5.2011 16:46  605
Můžete mi někdo prosím poradit, jak mám správně volat funkci javascriptu při události onresize? Potřebuji, aby se při změně velikosti okna on-line překreslil obsah stranky. Dělám to takto:
<BODY onresize="mojeFunkceJavascriptu()">
...
</BODY>
V IE vše funguje OK. Ve FireFoxu nezafunguje zavolání javascriptové funkce reload (neprovede se), přestože to na ten řádek evidentně jde. Když vynutím reloadování stránky ručně, vypadá pak přesně tak, jak chci. V IE to reloadování pomocí javascriptu zafunguje OK (nemusí se to pak ručně reloadovat), ve FireFoxu ne (musí se to pak ručně reloadovat). Úplně by mi stačilo, kdyby to, když to takto volám, zafungovalo i ve FireFoxu. Nebo jak jinak mám zavolat tu svou funkci (obsahující ten reload) při události onresize, pokud chci, aby reload při tom volání zafungoval i ve FireFoxu?
bighead BIGHead Pořádáte akci, vyzkoušejte - naše moderátory 19.2.2011 12:46  602
Teď koukám, že je to klub JS, takže ta část o tom zápisu asi neplatí, ale ten začátek by měl :).
bighead BIGHead Pořádáte akci, vyzkoušejte - naše moderátory 19.2.2011 12:41  601
Já bych je umístil všechny do jednoho Divu, který bych napozicoval, aby zůstaval pořád vidět a do ně bych narval ty řetězce už třeba jen s class="retezec" a pak bych přes margin nastavil tu tvoji vzdálenost, co cheš aby byly od sebe. Čím míň absolutně/relativně/jakkoliv pozicovanejch prvků, tím líp.

Navíc ten tvůj zápis, kdy každou vlasnost děláš zvlášť je taky masakr, stačí přeci zapsat:

#IDECKO1 {
position: "absolute";
top: 0px;
left: 12px;
background-color="white";
font-family: Arial; font-size: 10px;
}
david11 David11 - Bilbo..and the mouse police never sleeps 18.2.2011 21:07  600
Můžete mi prosím někdo poradit, zda se dá nějakým způsobem zadat relativně vzdálenost jednoho fixovaného řetězce od druhého? Jde mi o to, že potřebuji na stránku napsat řetězec, který při scrolování bude zůstávat stále na stejném místě; a vedle něj druhý řetězec, který také bude zůstávat na stejném místě - a rád bych nějak pevně zadal vzdálenost začátku druhého textu od konce prvního. Dá se to nějak udělat?

Zatím to řeším tak, že zadám vzdálenost obou textů absolutně od levého horního rohu dokumentu, což se mi ale nelíbí, protože nevím, zda se mohu spolehnout, že všechny prohlížeče zobrazí ty texty (jejich délku) stejně jako se zobrazují mně.

Dělám to takhle:

(style)
#IDECKO1 {position: "absolute";}
#IDECKO1 {top: 0px; left: 12px}
#IDECKO1 {background-color="white"}
#IDECKO1 {font-family: Arial; font-size: 10px}
(/style)
(style)
#IDECKO2 {position: "absolute";}
#IDECKO2 {top: 0px; left: 85px}
#IDECKO2 {background-color="white"}
#IDECKO2 {font-family: Arial; font-size: 10px}
(/style)
function fixedEl(id1, id2)
{
if(document.all)
{ document.all[id1].style.pixelTop = document.body.scrollTop + 0;
document.all[id1].style.pixelLeft = document.body.scrollLeft + 12;
document.all[id2].style.pixelTop = document.body.scrollTop + 0;
document.all[id2].style.pixelLeft = document.body.scrollLeft + 85;
}
}
// a pak někde na stránce:
document.write("(span id='IDECKO1') REREZEC_1 (/span)");
document.write("(span id='IDECKO2') REREZEC_2 (/span)");
// (v tagu místo špičatých závorek zde píšu kulaté, nevím jak zařídit, aby se v příspěvku zobrazil tag s špičatými závorkami)

ale rád bych ten druhý text zadal nějak relativně od toho prvního.

A druhý dotaz: nedělám to zbytečně složitě, když pro každý fixovaný řetězec vytvářím nové idečko? Mým záměrem je někde absolutně zafixovat první řetězec a za ním v pevně daných vzdálenostech několik dalších řetězců. Opravdu musí mít každý řetězec své idečko, nebo to dělám blbě?

Jo a ještě vysvětlení, proč to celé nevypíšu jedním řetězcem: jednak chci, aby vzdálenost řetězců od sebe byla větší než jedna mezera a pak také chci, aby každý řetězec měl bílé pozadí, ale mezi nimi aby bylo pozadí stránky.
bredy 20.9.2010 22:19  599
Nevím, proč tam máš jednou backgroundColor a podruhé color. A jinak se ta funkce dá navěsit na ten input snad jako onchange nebo tak nějak.
bighead BIGHead Pořádáte akci, vyzkoušejte - naše moderátory 20.9.2010 22:16  598
tak jsem se po celém dnu dopracoval k následujícímu kódu, který stejně nefunguje :(. Byl jsme schopen ten text obarvit při stisknutí tlačítka, ale já to potřebuji na základě té hodnoty...

function color()
{
if (document.getElementById('odchod').value=="63") {
document.getElementById('odchod').style.Color = 'red';
}
else {
document.getElementById('odchod').style.backgroundColor = '';
}
}
bredy 20.9.2010 12:47  597
BIGHeadv závislosti na hodnotě se hrabat ve stylech těch kontrolů.
bighead BIGHead Pořádáte akci, vyzkoušejte - naše moderátory 20.9.2010 08:58  596
Mám formulář. Po výběru radio buttonu se mi dvě pole předvyplní nějakými hodnotami.
Potřebuju, aby tyto hodnoty byly jinou barvou, ale v okamžiku, kdy tam uživatel vepíše svoje vlastní, tak aby byly barvou jako v ostatních polích. Jak na to?
tvx tvx Myslet si, že svět je JEN takový, jak - ho v daný čas můžeme pochopit je hloupé. 8.9.2010 13:35  595
eval me prave taky napadnul a mel jsem podobny pocity nepatricnosti, takze diky za slintaXi:)
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 8.9.2010 11:23  594
tvx [593]: Nezkousne, a proto je prave ta syntax dvoji, aby clovek nemusel volat eval (coz bohuzel rada lidi stejne dela, to se mi vzdycky chce umrit).

[ 398 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt