Autor Zpráva
tuzticzka
Profil
Ahoj, mám základní stránku kde je iframe(iframe.php) a JS který manipuluje s formulářem uvnitř. Po odeslání toho forumáře v iframe.php se načte ta samá stránka(v php, ale to není až tak moc podstatné). Problém nastává jenom v MSIE(překvapivě...). když v JS napíšu window.iframe_okno.document.formular.submit(); tak se normálně odešle, načte ta samá stránka(iframe.php), ale když se kouknete na progressbar, začne naprosto nepochopitelně cosi načítat. Když ten formulář odešlu tlačítkem input=submit, tak se nic jakoby načítat nezačne. V Opeře a FF to vůbec tahle nedělá... Nevíte co s tím? Docela to otravuje... dík
peta
Profil *
tuzticzka
mno, tak to nevim. By to chtelo pridat odkaz na stranku dobrou a spatnou. Takhle se da jenom vytahnout kristalova koule...
muzu si tipnout, ze mas neco spatne napsane a muzu si tipnout, ze prave ten radek je spatny:
window.iframe_okno.document.formular.submit();
jesli by nebylo lepsi:
window.iframe_okno.location.href="aaa.php?...parametry"
a samozrejme bych tam nedaval podtrzitka, protoze IE.
window.iframeOkno.location.href="aaa.php?...parametry"
tuzticzka
Profil
no jo, ale já ta ten formulář odesílám metodou POST a né GET, protože těch informací co potřebuju přenést je fakt dost...ale dík aspoň za nějakou pomoc :)
peta
Profil *
tuzticzka
peta
Zasláno: 22.7.2006 16:59:38
tuzticzka
mno, tak to nevim. By to chtelo pridat odkaz na stranku

nedas odkaz, neexistuje problem, cili problem je vyresen, cili navrhuji tema smazat? :)))
tuzticzka
Profil
Konkrétně to mám hozené tady: http://www.pavlasek.wz.cz/test/bug.html
peta
Profil *
tuzticzka
1. do fora NESPAMUJEME!!!! Jinak ti uz nikdo na nic neodpovi.
http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=8&topic=31 721
2. vidim tam v JS podtrzitka
window.ifr.document.frm.data_2.value
podtrzitko je uzasna vec, ale kdyz ti neco nebude fungovat, tak si nestezuj. A ted koukam, ze o tom jsem ti uz psal. Komu neni rady, tomu neni pomoci.
Take vidim pojmenovani inputu jako ID. Ti je sice pekne, ale:
<input name="id" id="aaa" value="xxx">
Jak chces v JS zmeni ID?
form.id="aaa"
form.id="bbb"
form.id.value="xxx"
form.id.value="yyy"
Ju? Nevim, zda to staci takhle rici nebo treba rozebrat. Id je parametr a mit name jako id nemusi zrovna fungovat.
3. tady se celkem pouziva span nikoliv A, protoze to neni logicky spravne, odkaz ma odkazovat, coz tvuj nedela a pri posouzeni stranky se ti to zkritizuje kvuli mnoha zobrazovacum pro nevidome a tak...
<a href="javascript:hejblo();">
<span onclick="hejblo();">
4. stranka neni validni
www.w3c.org
www.htmlvalidator.com/lite/
(prevazne v textarea, kde se pouziva & g t ; entita (lt) nikoli znamenko vetsi mensi)
5. Konecne se dostavam k problemu, takze konzola JS:
uz jenom pri nactni stranky hlasi chyby:

Chyba: Soubor s kaskádovými styly http://i.wz.cz/404.html nebyl použit, protože má typ MIME "text/html" místo "text/css".
Zdrojový soubor: http://www.pavlasek.wz.cz/test/bug.html
Řádek: 0

Coz muze byt problem nacitani v IE, ale take nemusi, protoze zatim mam Firefox.

6.
Zkusil jsem odeslat formular a nic extra se nestalo.
Odeslani pres tlacitko probehlo uspesne.
Odeslani pres enter probehlo uspesne.
Takze se dostavam konecne do faze IE...
V IE se to nacetlo bez vyhlaseni chyby, ted zkusim odeslat.
Odeslani pres tlacitko probehlo uspesne.
Odeslani pres enter probehlo uspesne.
... cili mne to v IE nedela zadne potize. Ja mam verzi 6.0.2900.2180 (sp2) neco. Jakou mas verzi ty?

7. Takovy tip:
function hejblo() {

window.ifr.document.frm.typ.value="autoSUBMIT";
window.ifr.document.frm.id.value="1";
window.ifr.document.frm.data_1.value="data1";
window.ifr.document.frm.data_2.value="uvidí se...";
window.ifr.document.frm.submit();
}

function hejblo()
{
var f = window.ifr.document.frm;
f.typ.value="autoSUBMIT";
f.id.value="1";
f.data_1.value="data1";
f.data_2.value="uvidí se...";
f.submit();
}
Co rikas? Muze byt? A samozrejme by to chtelo vyhodit ty podtrzitka...
Jinak teda mam ted delany chat tak, ze do skryteho iframu nactu nejaky pocet zprav a ty pak javascriptem vepisi do nejakeho divu. Jestli hadam dobre, tak bud delas chat nebo neco jako guestbook, akorat ty nacitas celou stranku. Nevyhoda toho meho je, ze bez JS se nic nezobrazi, proti tvemu reseni.

8.
<a href="javascript:window.location=this.location"
Tak to je mazacke. :) Mas to odzkousene?
ja bych to napsal spise jako
<a href="javascript:window.location=window.location"
protoze this podle mne odkazuje na element A, ve kterem vsak ale location zadne nemas, takze by to snad ani nemelo fungovat.
peta
Profil *
Jo, ja tam pouzivam konstrukce typu:
var d = window.parent.document
var d = window.parent.NameRamu.document
Coz je ale detail, tohle mas myslim dobre.
A take pouzivam
d.jmeno.focus(); // cili presunuti kurzoru na urcite misto po odeslani
tuzticzka
Profil
ad 1. do diskuzí přispívám jenom výjmečně, v tomhle jsem ještě zelenáč; nemyslel jsem to ve zlém

ad 2. podtržítka smažu; id tam není ve smyslu atributu, ale hodnoty. id tam mám jako identifikátor pro potřebu toho webu do kterého to dělám. Ale pro klid duše to pozměním.

ad 3. tohle jsem jako span neudělal spíš schválně, protože když tam dám A, tak v CSS můžu jednoduše udělat :hover efekt. S tím SPANem by to šlo přes OnMouseOver a Out taky, ale na celé stránce už mám tolik JS, že tímhle efektem jsem už nechtěl prohlížeč tolik zatěžovat, už takhle toho má opravdu ažaž (přes 400řádku čistého JS)

ad 4,.5. tak na tohle jsem vážně nemyslel, ale je to napsané trochu na rychlo, takže se tomu až tak moc nedivím(zapomenutý link na exter. stylopis). btw ta textarea tam je jenom pro názornost, aby šlo vidět co v tom inframe.php je. Jinak se ke zdrojovému kódu v PHP přece nedá jednoduše dostat-po dokončení tam už samozřejmě nebude, stejně jako ty odkaz na reload(REFRESH)

ad 6. ten problém není v samotném odeslání, ale v tom jak se IE chová při odeslání pomocí tlačítka input type=submit(bez problémů) nebo přes JS document.frm.submit()(po načtení iframe.php po odeslání se aktivuje ukazatel průběhu načtení-progressbar). Se samotným odesláním problém taky nemám. Jestli se ti to vážne nestalo, tak zkusím natočit krátké video, ktekré by bylo asi nejnázornější. Jinak verzi IE mám taky tu samou(6.0.2900.2180.xpsp_rtm.040803-2158), takže vůbec nechápu proč mě to blblne a tobě ne.

ad 7. jo, to souhlasím; já iframe využívám úplně stejně jako ty - k "neviditelné" komunikaci mezi serverem a klientem

ad 8. však sis to mohl klidně zkusit, jede to pod IE, MozFF i Operou :) je to ale lepší než tlač. Aktualizovat, protože když si načteš stránku(v IE) s chybou v JS tak tě na to upozorní žlutým vykřičníkem. Jenže: Chybu opravíš, reloadneš si tu stránku a? Vykřičník tam straší pořád i když ta chyba tam už není. Někdy stačí použít Ctrl+F5(znovunačtení bez použití dat z cache), ale já radši používám tenhle zápis. Z mojá hlavy to sice není, ale vážně to funguje.
tuzticzka
Profil
Tak, mám to video už natočené, ale trochu mi zlobí přehrávání(doufám, že ten problém je jenom na mém PC a ne v samotném AVI).
Má to 851kb, takže slabší kvalita. Ale to důležité je vidět dobře. Ten form je odeslaný nejprve ručně, potom přes JS.

http://www.pavlasek.wz.cz/test/iebug.avi
Chamurappi
Profil
Reaguji na petu:
vidim tam v JS podtrzitka [...] podtrzitko je uzasna vec, ale kdyz ti neco nebude fungovat, tak si nestezuj. A ted koukam, ze o tom jsem ti uz psal. Komu neni rady, tomu neni pomoci.
Další z tvých „osvědčených“ rad? Nějak se mi nezdá. Prosil bych důkaz.

<a href="javascript:window.location=this.location"
Tak to je mazacke. :) Mas to odzkousene?

Zkoušet netřeba. Z kódu přeci vidíš, že to funguje, neboť kód v pseudoprotokolu „javascript:“ je interpretován stejně jako kód uvnitř elementu <script>.

protoze this podle mne odkazuje na element A
Ne. Odkazuje na window. Napiš si do adresního řádku „javascript:alert(this === window)“ a vyštěkne na tebe true.


Reaguji na tuzticzku:
Problém předváděný na videu se ani v mém Exploreru 6 neprojevuje.
Důrazně tě varuji před radami od pety, je to takový Brouk Pytlík.

já iframe využívám úplně stejně jako ty - k "neviditelné" komunikaci mezi serverem a klientem
Znáš XmlHttpRequest? Pomocí něj můžeš u klienta komunikovat se serverem mnohem efektivněji.
peta
Profil *
Chamurappi tebe ja ignoruji :)

tuzticzka Rikam, ze to mam v poradku, to video mi posilat nemusis, ja ti verim. Mi neco podobne delal v pripade chybneho CSS obrazku:
background-position: 50% center , podle nejakeho pravidla ala Chamurappi nesmis napsat cislo + text, ale pouze cislo + cislo, text + text, a Opera i FF se z toho jdou zblaznit podobnym zpusobem, jak rikas ty.
Cili fakt tu chybu vyvolat neumim.
Uplne cislo IE mam (ale to neni tak podstatne)
6.0.2900.2180.xpsp_sp2_gdr.050301-1519
6.0.2900.2180.xpsp_rtm.040803-2158 (srovnani s tvou)
Cili asi jiny druh windows, proste mi to nedela...

Zluty vykricnik ti v IE pri opraveni a reloadu samozrejme zmizi. Ovsem musis provest reaload a ne mit nastaveny prohlizec tak, ze ti pulku veci vytahne z cache. Pak je treba to F5 zmacknout vicekrat.

Ale vis, ty co, Chamurappi je pan chytrej, jiste ti rad rekne, kde problem vznika :))) (silne pochybuji, ze ma vubec nejake analyticke mysleni, ale nikdy nevis :) )
peta
Profil *
Chamurappi
"Znáš XmlHttpRequest? Pomocí něj můžeš u klienta komunikovat se serverem mnohem efektivněji."
:))) Musis zkusit a zjistis, ze je to o dost pracnejsi zarucit spolehlivost spojeni do ktereho nevidis jako do zdroje iframu :) par kilo navic, co usetris, za to fakt nestoji.
na chatu mam 400B odesli, 800B prijmi, plus text zpravy a nejake udaje.
pracuje to tak, ze pri odeslani poslu 400+text a soucasne to spusti efresh, ktery nacte asi 10 poslaednich radku chatu + 800. Jinak se jeste provadi autorefresh po 17s. Cili spotreba chatu je zhruba 2M/hod a muzu si zobrazit, co se v jednotlivych framech deje a zda mi ten frame prisel ci ne a tak...
peta
Profil *
Chamurappi
Az to budes nekdy pouzivat na sve strance pro editaci obsahu stranky, tak mi dej vedet, prostuduji si zdrojovy kod, ale jinak takoveto veci fakt nemusim, ferdiku.
tuzticzka
Profil
Chamurappi - díky, že ses taky zapojil do diskuze. Vždycky je lepší znát nějaký názor od více lidí (než od jednoho) :) a k výroku Důrazně tě varuji před radami od pety, je to takový Brouk Pytlík. se už taky přidávám, pročetl jsem si http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=8&topic=31 255 a úplně s tebou souhlasím.

Znáš XmlHttpRequest? Pomocí něj můžeš u klienta komunikovat se serverem mnohem efektivněji.
-no to jsem vážně nevěděl, ale co jsem se tak zběžně prohledal diskuzi JPW, tak podle těch příkladů mi to přijde celkem složité s tím něco dělat. Díky za link, anglicky sice trochu umím, ale nepochopil jsem. Kdyby jsi věděl o nějaké CZ stránce s vysvětlením jak se to používá, budu jedině rád
Zatím to nechám tak jak to(protože s XmlHttpRequest ještě neumím) je a všude(až na můj pc) to naštěstí funguje bez problémů.
Chamurappi
Profil
Reaguji na petu:
tebe ja ignoruji :)
Ne. Zjevně.

podle nejakeho pravidla ala Chamurappi nesmis napsat cislo + text
To je podle pravidla W3C. Podle blbého, zbytečného a zastaralého pravidla. Asi sis nevšiml, že já nepovedené specifikace konsorcia neuctívám. Naopak zpochybňuji jejich význam.

background-position: 50% center [...] a Opera i FF se z toho jdou zblaznit podobnym zpusobem, jak rikas ty.
Ne. Již první prohlížeč znající background-position (tj. Explorer 4) uměl kombinovat procenta s klíčovými slovy. Umí-li prohlížeč správně rozebrat CSS kód a vyložit si ho dle webmasterova očekávání (což Mozilly i Opery umí -- odzkoušeno), je extrémně nepravděpodobné, že by se kvůli němu zakousla síťová komunikace. Na takovou úvahu snad tvé analytické myšlení nestačí?
Ukaž příklad, kde ke „zbláznění“ dochází.

Ale vis, ty co, Chamurappi je pan chytrej (viz tady), jiste ti rad rekne, kde problem vznika :)))
Ty by sis také měl dojít za nějakým chytrým odborníkem, aby ti řekl, kde problém vzniká. Projevuješ se jako hulvát.

V reakci na XmlHttpRequest: „:))) Musis zkusit
Proč myslíš, že jsem ho nezkusil? Jen proto, že tobě se nehodil? Mám s ním dost zkušeností a tisíce spokojených návštěvníků.

zjistis, ze je to o dost pracnejsi zarucit spolehlivost spojeni do ktereho nevidis jako do zdroje iframu :)
Ne. Spojení může být spolehlivé i bez toho, abych viděl stažená data. Když už je vidět chci, tak si je snadno dám někam, kde je uvidím.

par kilo navic, co usetris, za to fakt nestoji
Neplatí obecně. Nevíš, co za data tahám, nevíš, co za data chce tahat tuzticzka. Při užití XmlHttpRequestu by k problému, který tuzticzka popisuje, patrně nedocházelo.
Krom toho: kritizoval jsi použití <a> místo <span> s tím, že odkaz nebyl logicky správně. Stejně tak přeci není logicky správně <iframe> jako neviditelný načítač dat.


Reaguji na tuzticzku:
Podobný problém jsem již kdysi někde nějak zkoušel řešit, ale ten se projevoval i v Explorerech, v nichž se ten tvůj neprojevuje.
Zkus do kódu přidat element <iframe name="temp"> (klidně bez src a zneviditelněný) a po načtení toho prvního <iframu> něco zapsat do toho druhého pomocí top.temp.document.write("něco") a okamžitě tamní dokument zase zavřít pomocí top.temp.document.close(). To by myslím mělo Explorer přesvědčit, aby se znovu podíval, jestli má všechno dotažené.

podle těch příkladů mi to přijde celkem složité s tím něco dělat
Chce to si ten objekt trochu osahat, pak to jde samo.

Kdyby jsi věděl o nějaké CZ stránce s vysvětlením jak se to používá, budu jedině rád
Asi časem sám nějaký návod sepíšu, zatím o žádném dobrém nevím.
B4c!L
Profil *
Prosim prosim poradite mi nekdo jakej je HTML na "inframe" ( moc tomu nerouzumim sem v tomhle oboru nováček ) :)
Toto téma je uzamčeno. Odpověď nelze zaslat.