Autor | Zpráva | ||
---|---|---|---|
eidzem Profil |
#1 · Zasláno: 13. 6. 2008, 08:51:13
Ja by som potreboval nejaku fintu, ktora mi zisti velkost aktualnej stranky, ktora je v iframe a podla toho ten iframe roztiahne tak aby v nom nebol scroolbar.
Najskor mam nejaky text potom chcem mat iframe a nakoniec zase nejaky text. Velkost hlavnej stranky sa menit nebude, ale ked budem pracovat v iframe, chcem aby ten spodny text bol hned pod iframom a v iframe nebol ziadny scroolbar. Iframe je nutny pouzit a pravdepodobne v kombinacii s java. Prosim o pomoc. |
||
peta Profil |
#2 · Zasláno: 13. 6. 2008, 10:34:40
eidzem
google.com site:diskuse.jakpsatweb.cz javascript zjisteni velikosti okna nebo neco podobneho... <div id=#ddd style="width:30px"> obsah stranky obsah stranky obsah stranky obsah stranky </div> <script>alert(document.getElementById('ddd').offSetHeight)</script> Ale nevim, zda to je uplne dobre. google.com javascript object size example javascript window size example javascript window size example crossbrowser |
||
eidzem Profil |
#3 · Zasláno: 13. 6. 2008, 11:49:23
tak nasiel som nieco taketo:
<script type="text/javascript"> function autoIframe(frameId){ try{ frame = document.getElementById(frameId); innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document; objToResize = (frame.style) ? frame.style : frame; objToResize.height = innerDoc.body.scrollHeight + 10; } catch(err){ window.status = err.message; } } </script> <iframe id="tree" name="tree" width="100%" src="formular/formular.html" onload="if (window.parent && window.parent.autoIframe) {window.parent.autoIframe('tree');}"></iframe> Ale nerobi to uplne co chcem. Iframe sa sice nastavy tak ako sa ma, ale ja v tom iframe mam formular a ak nejake policko spravne nevyplnim, tak sa pod prislusnym polickom zobrazi hlaska o povolenych znakoch a cele sa mi to posunie a zobrazi sa scrollbar. Nedalo by sa aj toto nejako osetrit? |
||
Yuhů Profil |
#4 · Zasláno: 13. 6. 2008, 13:43:30
jinak řečeno ty máš v tom iframu načtený dokument
a pak v něm zobrazíš jiný dokument (odeslaný formulář), který už má jinou výšku. Ale co chceš, aby se v tu chvíli stalo? Má se iframe zvětšit? Nebo se má původní iframe rovnou udělat větší, aby se do něj vešel druhý dokument i s chybou? V prvním případě teď rychle nevím, jak zachytit událost změny obsahu iframu. |
||
eidzem Profil |
#5 · Zasláno: 13. 6. 2008, 14:20:50 · Upravil/a: eidzem
Nie, v iframe je robrazeny iba formular. V nom je naprikad meno a priezvisko a adresa.
A ked kliknes do mena a napises tam napriklad cislovku, tak to je chyba. A ta sa vyhodnotu akonahle stlacis tabulator, alebo kliknes do ineho pola. A ta chyba sa vypise priamo pod polom, v ktorom je chyba. Tym sa zvacsi cely formular, ale nie iframe. A ja potrebujem aby sa zvacsil aj iframe. CHyba sa vhydodnoti, ked kliknes na hociktore miesto na stranke, teda aj do ineho pola a aj pri staceni tab. Pri tychto funkciach chcem aby sa znova prepocitala velkost formulara a opravil sa aj iframe. Tu je hola ukazka http://kompromis.tym.sk/formular_pokus_nemaz2.html Najskor si klikni do zlteho pola a potom do ineho a uvidis ca sa stane a co chcem spravit. Jednoducho aby sa ta funkcia, ktora vypocitava velkost iframu nevykonala iba raz pri "onload", ale aby sa vykonavala stale. |
||
Yuhů Profil |
#6 · Zasláno: 13. 6. 2008, 15:20:11 · Upravil/a: Yuhů
takže je potřeba nechat nějak probublat událost onblur do nadřazeného okna a v něm znovu spustit tu funkci autoIframe(). To probublání neumím, ale netvrdím, že to nejde.
Třeba to probublá samo. Zkus zkopírovat celý ten blok kódu s onload a napiš ho jako onblur= |
||
peta Profil |
#7 · Zasláno: 13. 6. 2008, 15:57:01
eidzem
celou metodu zvetseni iframu zavolas po vypsani chybove hlasky a to by melo problem resit, ne? onclick = funkce() funkce() { vypis chybu(); zjisti rozmery framu(); } V cem vidis problem? Jinak prima, ze ses konecne rozepsal o tom formulari jak a proc to vlastne potrebujes, co to dela. Idealne hnedka dat odkaz. Viz tema "Jak psat do tohoto fora" . Yuhů Clovece, ty zijes :) Tvoje zpravy tu nevidim ani nepamatuji. |
||
eidzem Profil |
#8 · Zasláno: 15. 6. 2008, 16:21:01 · Upravil/a: eidzem
Ale aj tak si s tym asi nebudem vediet poradit. Ved viete, co chcem a kludne vam mozem poslat aj zdrojove subory, len mi s tym pomozte. Musim ist touto cestou lebo internet fucksplorer je krepy.
|
||
eidzem Profil |
#9 · Zasláno: 16. 6. 2008, 10:34:39
No neviem si s tym rady.
Funkcie, pri ktorych chcem zistovat velkost iframu su asi tieto: Funkcia, ktora zobrazuje chybovu hlasku: _msgInject: function(owner, options) { if(!$(owner.getProperty("id") + options.type +"_msg")) { var msgContainer = new Element(this.options.msgContainerTag, {"id": owner.getProperty("id") + options.type +"_msg", "class": this.options.msgClass}) .setHTML(options.msg) .setStyle("opacity", 0) .injectAfter(owner) .effect("opacity", { duration: 500, transition: Fx.Transitions.linear }).start(0, 1); owner.cbErr++; this._chkStatus(owner, options); } }, Funkcia, ktora odstranuje chybovu hlasku: _msgRemove: function(owner, options, isReset) { isReset = isReset || false; if($(owner.getProperty("id") + options.type +"_msg")) { var el = $(owner.getProperty("id") + options.type +"_msg"); el.effect("opacity", { duration: 500, transition: Fx.Transitions.linear, onComplete: function() {el.remove()} }).start(1, 0); if(!isReset) { owner.cbErr--; this._chkStatus(owner, options); } } }, Ale neviem ako to mam do toho implementovat. Tieto dve funkcie su v javascripte, ktory sa nacitava vo vnutry iframu, teda v tom formulary. A neviem ako to spravit aby ta informacia prebublala o uroven vyzsie. |
||
Časová prodleva: 16 let
|
0