Autor | Zpráva | ||
---|---|---|---|
Tinny Profil * |
Ahoj,
oč mi jde je patrno z přiloženého zdrojáku. Po změně velikosti okna uživatelem by se měla přepočítat nějaká hodnota a ta se pak projevit. Jedinou funkci, kterou jsem byl schopen vymyslet je reload stránky, i když by bylo lepší jen nějaké přepočítání a překreslení, což asi neexistuje. V IE to bez problému funguje, ale v prohlížečích typu Mozilla ne. Je tam nějaká formální chyba nebo je to celé špatně? Jak na to? <HTML><HEAD><SCRIPT type="text/javascript"> |
||
habendorf Profil |
#2 · Zasláno: 9. 3. 2005, 11:14:38
1) window.onresize = reloudni();
2) nejsem si moc jistý tím innerHeight a innerWidth |
||
Leo Profil |
#3 · Zasláno: 9. 3. 2005, 11:18:29
window.onresize = reloudni
bez () je ok, neni to volani fce, chyba bude jinde, ale dnes po ranu mam vypadly mozek, Leo |
||
Fred Profil |
#4 · Zasláno: 9. 3. 2005, 11:25:06
|
||
Tinny Profil * |
#5 · Zasláno: 9. 3. 2005, 11:36:56
Bez závorek je to správně; funkce sama běží, jen to neudělá reload ve Firefoxu; Si to zkuste v IE a Firefoxu...
Na ověření stačí text: window.onresize = reloudni; function reloudni() { location.reload(); window.alert("test"); } |
||
Tinny Profil * |
#6 · Zasláno: 9. 3. 2005, 11:43:05
a ještě dodatek... problém se vůbec netýká zjištění šířky okna, to funguje bezvadně; Jde jen o ten reload;
Jen pro úplnost: "window.innerHeight" podporuje NN, Mozilla a spol.; IE ne; "document.body.clientWidth" podporují nové verze Mozilly a Firefox (ale ty to načtou z první fce) a IE; mimochodem IE to bere jen skutečnou vnitřní šířku okna, ale "Mozilla spol." do toho rozměru počítá i šířku posuvníkové lišty... (asi proto, že ji nezobrazuje, když není potřeba); Trochu to tím komplikuje, ale při nehorším se to dá předem odečíst; Každopádně teď mi pomozte prosím vyřešit, proč neudělá "Mozilla spol" ten reload; díky .o) |
||
Fred Profil |
#7 · Zasláno: 9. 3. 2005, 11:57:15
document.location.reload()
|
||
Leo Profil |
#8 · Zasláno: 9. 3. 2005, 12:07:13
Zkusil bych location.reload(true), pokud je problem v kesi, Leo
|
||
Tinny Profil * |
#9 · Zasláno: 9. 3. 2005, 12:37:06
Obě možnosti a jejich kombinace jsem zkoušel už dříve; V IE to vždy jde a jinde ne;
(Testoval jsem to dokonce i na NN7, Mozilla 1.3 a v tom Firefoxu... což je víceméně skoro stejný prohlížeč); Zkrátka nevím, jak tyhle prohlížeče donutit reloadnout nebo refreshnout stránku... Zkuste si to na svém Pc, okopírovat zroják do souboru moc času nezabere... |
||
Fred Profil |
#10 · Zasláno: 9. 3. 2005, 12:45:11
Mě to normálně jde , bude tam nějaká jiná chybka, funguje jak location.reload() tak document.location.reload() test mění pozadí na reload tím pádem i na resize
|
||
Tinny Profil * |
#11 · Zasláno: 9. 3. 2005, 13:30:16
no, zajímavé. Já se ale nesnažím vyvolat nějakou akci reloadnutím. Chci vyvolat pomocí události resize akci reload...
|
||
Leo Profil |
#12 · Zasláno: 9. 3. 2005, 13:36:37
Zkuste neco ve stylu
window.location.replace(window.location.href); Funguje i ve FF. Jinak se zda, ze IE pri zmene velikosti okna tu fci reloudni vola vickrat! |
||
Fred Profil |
#13 · Zasláno: 9. 3. 2005, 13:38:44
Teď už nechápu o co ti jde, pošli sem celý zdroj, na tom testu co jsem uploadnul je funkce, která na loudnutí vybere náhodný obrázek na pozadí , nic víc. Na onresize je přidaná ta tvoje funkce a co to dělá ? Nic jiného, než , že když změním velikost okna, vymění obr na pozadí. Co to znamená- že to funguje. To znamená chyba je jinde. Proto nerozumím proč opakuješ dotaz , hledej chybu jinde než jsi hledal a u sebe.
|
||
Tinny Profil * |
#14 · Zasláno: 9. 3. 2005, 13:51:33
Pes bude zakopaný někde jinde... když location.reload vyvolám třeba kliknutím, tak se stránka reloadne;
Když tu funkci vyvolám přes událost resize, tak se stránka nehne;
|
||
Fred Profil |
#15 · Zasláno: 9. 3. 2005, 13:54:57
Spíš se zdá, po té co jsem to shlédnul v IE, že IE6 tady má evidentně nějaký problém, který se v IE5 a IE5.5 nevyskytuje, reloaduje to totiž pořád dokola, BTW co si představuješ pod pojmem reload ?
Přihodil jsem tam na onresize function reloudni(){setTimeout('document.location.reload()',1000);} , aby to nedělalo ten stroboskop a IE6 opravdu reloaduje každou vteřinu. Místo, aby se reloadovalo na onresize! |
||
Tinny Profil * |
#16 · Zasláno: 9. 3. 2005, 13:59:38
tohle zabralo...
function reloudni() { window.location.replace(self.location.href); } díky :o) Teď ještě jesli je to správně po formální stránce... Frede, tvůj soubor mi fungoval jen na manuální reloadnutí, na resize okna mi to nedělalo nic; |
||
Fred Profil |
#17 · Zasláno: 9. 3. 2005, 14:02:02
Jasně chyba je jinde
function reloudni() { window.location.reload() } function overit(){ if (window.innerHeight) {sirka=window.innerWidth} else {sirka=document.body.clientWidth} window.alert(sirka) } window.onresize = reloudni; window.onload = overit; |
||
Leo Profil |
#18 · Zasláno: 9. 3. 2005, 14:02:03
Taky jsem si vsiml, z IE reloaduje asi petkrat za sebou :-) Mozna by stacilo poslat z fce treba return false, to zabira na dost veci, kdo vi, Leo
|
||
Tinny Profil * |
#19 · Zasláno: 9. 3. 2005, 14:04:12
Frede, jo všimnul jsem si, že tvá původní verze byla v IE6 nepoužitelná, šlo to pořád dokola.
Reload - pod tím myslím znovunačtení stránky; I když pro můj účel by bylo lepší, kdyby jen překreslil obsah okna podle nových parametrů a netahal nic znova z cache... |
||
Fred Profil |
#20 · Zasláno: 9. 3. 2005, 14:05:55
?Frede, tvůj soubor mi fungoval jen na manuální reloadnutí, na resize okna mi to nedělalo nic; ?
Opera 7.23,7.5,8 beta OK K-meleon 0.7,0.9 OK Netscape 7.0,7.2 OK Firebird 0.7 OK Firefox 1.0 OK Mozilla 0.7 OK IE 5,5.5 OK IE6 problém pospaný výš |
||
Leo Profil |
#21 · Zasláno: 9. 3. 2005, 14:08:12
No ona i ta moje verze v IE6 je v tomhle smeru nepouzitelna, nejak ma zmatek v udalosti onresize, Leo
|
||
Fred Profil |
#22 · Zasláno: 9. 3. 2005, 14:10:01
Dobře tohle je dejme tomu vyřešený, ale co myslíš tím překreslil obsah okna podle nových parametrů , mám dojem, že by to šlo řešit jinak. Nepotřebuješ náhodou spíš něco jako http://www.alistapart.com/articles/footers/
|
||
Tinny Profil * |
#23 · Zasláno: 9. 3. 2005, 14:12:11
Dej mi link na tu novou verzi, Frede. Ještě to teda zkusím.
Jinač u poznámky "Jasně, chyba je jinde" jsem nic zajímavého a přínosného neshledal. |
||
Fred Profil |
#24 · Zasláno: 9. 3. 2005, 14:15:04
|
||
Tinny Profil * |
#25 · Zasláno: 9. 3. 2005, 14:37:41
mňo.. tak jsem si odskočil pro jistotu i na jiný comp, kde mám w98 a výsledek testování Fredova posledního souboru je následující (funkčnost se testovala změnou šířky okna tažením okraje myší):
IE 6.028 - OK Firefox 1.0 - ne (čistá nová instalace beze změn v nastavení) Mozilla 1.6 - OK Mozilla 1.3 - OK Mozilla 1.2 - OK Netscape 7.0 - OK Netscape 6.2 - OK Netscape4.5 - OK(!) Opera 7.0 - OK Opera 6.05 - ne Arachne jsem radši nezkoušel; |
||
Fred Profil |
#26 · Zasláno: 9. 3. 2005, 14:54:41
Jsem tu s Firebirdem, Firefox 1.0 nemám, ale díval jsem se ve Firefoxu 1.0 preview release a je to v pohodě, není náhodou špatně nainstalován?
|
||
Tinny Profil * |
#27 · Zasláno: 9. 3. 2005, 15:01:59
Já ti to věřím. Jenže u mě to v tom Firefoxu nejde. Záhada. Nevim proč, taky jsme přemýšlel, jestli není špatně nainstalovaný, nebo nemá zakázané nějaké funkce kvůli bezpečnosti... na jednom kompu jsem ho i přeinstaloval. Na jednom jsou WinXP na druhým W98, na obou je instalovaný bez potíží, česká verze, žádné nastavení jsem neměnil a všechny funkce JS a javy jsou povolený... :-/
|
||
Fred Profil |
#28 · Zasláno: 9. 3. 2005, 15:06:31
Hmm , tak to mě trochu nas* , nainstaloval jsem si 1.0.1 a fakt mi to nejede, jenomže, problém bude, nekompaktibilnost některých rozšíření, u mně je to konkrétně tenhle problém
Chyba: uncaught exception: [Exception... "Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getBoolPref]" nsresult: "0x8000ffff (NS_ERROR_UNEXPECTED)" location: "JS frame :: chrome://flashblock/content/flashblock-prefs.js :: isEnabled :: line 8" data: no] Podívej se v nástrojích do Konzole jazyka Javascript a hoď sem co Ti to píše, to že máš čistou instalaci, ještě neznamená že čistá je , jestli se přetahovali nějaké add-ons problém bude tam. Oprava všeho výše, odinstaloval jsem konfliktní Flashblock a opravdu to nefunguje, tak to je na bugreport, BTW konzole JS nic nehlásí :-( , to mám teda radost, mám moc rád nepředložené chování prohlížečů , měl jsi pravdu!!! |
||
Fred Profil |
#29 · Zasláno: 9. 3. 2005, 15:10:59 · Upravil/a: Fred
Tady mi to funguje drubez-vaigl.cz
|
||
Tinny Profil * |
#30 · Zasláno: 9. 3. 2005, 15:14:14
Jinač jsem od začátku potřeboval spíš tohle. :-))
Díky za ten link na stránku s tou patičkou!
|
||
Téma pokračuje na další straně.
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0