Autor Zpráva
eidzem
Profil
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
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
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
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
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
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
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
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
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.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0