• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

iFrame Resize Hight

th_wolfgang

New member
Hallo,

habe ein iFrame Resize Script, welches hervorragend funktionierte gefunden: https://github.com/davidjbradshaw/iframe-resizer

Leider musste ich feststellen, dass dies nur bei meinem Firefox funktionierte, im IE und z.B. Chrome habe ich hier Probleme dies zum laufen zu bringen, kann mir jemand etwas unter die Arme greifen. Ich habe unter Google z.B. stackoverflow viele Artikel gefunden, wo es anscheint dann funktioniert hatte, ich stelle mich Anscheins wieder mal zu blöd an.

Danke & LG
Wolf

- - - Aktualisiert - - -

NACHTRAG: Nach weiteren 10 stunden habe ich es endlich geschafft, das script funktioniert nun in allen Browsern vom IE bis iOS etc.

Der Fehler waren die mitgegebenen Optionen, nach dem ich fast alle getestet habe bin ich auf eine "einfache" Regel gestoßen.
Wer hier Bastelhilfe benötigt einfach melden... Im Child muss auch noch ein wenig "rein".

Parent:
Code:
		<script type="text/javascript">

			iFrameResize({
				log                     : true,                  // Enable console logging
				resizedCallback         : function(messageData){ // Callback fn when message is received
					setTimeout(function(){parentIFrame.sendMessage('nested')},50);
				}
			});

		</script>

Child:

Code:
<script type="text/javascript">

			(function() {

				var logging = true;

				try{

					function addEventListener(e,func){
						if (window.addEventListener){
							window.addEventListener(e,func, false);
						} else if (window.attachEvent){
							window.attachEvent('on'+e,func);
						}
					}

					function log(msg){
						if (logging && window.console){
							console.info('[Test] '+msg);
						}
					}

					function warn(msg){
						if (window.console){
							console.warn('[Test] '+msg);
						}
					}


					function init(test){

						function changeContent(){
							$('p').eq(0).remove();
						}

						function callMethod(methodName,val1,val2){
							if ('parentIFrame' in window) 
									window.parentIFrame[methodName](val1,val2);
								else
									warn('window.parentIFrame methods not enabled.')
						}


						console.info(test);

						switch (test){
							case 'changeContent':
								setInterval(function(){changeContent();},2);
								break;
							case 'close':
								callMethod('close');
								break;
							case 'pageChange':
								location.href = '../../example/frame.hover.html';
								break;
							case 'nested':
								location.href = 'frame.nested.html';
								break;
							case 'size':
								changeContent();
								callMethod('size');
								break;
							case 'autoResize':
								callMethod('setAutoResize',true);
								setTimeout(function(){
									changeContent();
									},500);	
								break;
							case 'size100':
								callMethod('size',100);
								break;
							case 'size200300':
								callMethod('size',200,300);
								break;
							case 'jsTrigger':
								changeContent();
								callMethod('trigger');
								break;
							case 'chkHeight':
								callMethod('sendMessage',document.body.offsetHeight);
								break;
							case 'chkBackground':
								callMethod('sendMessage',document.body.style.background);
								break;
							case 'chkSendMsg':
								callMethod('sendMessage','message: test string');
								break;
							case 'chkSendObj':
								callMethod('sendMessage',{message: 'test object'});
								break;
							case 'chkGetId':
								if ('parentIFrame' in window)
									callMethod('sendMessage',window.parentIFrame.getId());
								break;
							case 'setHeightCalculationMethod':
								if ('parentIFrame' in window){
									parentIFrame.setHeightCalculationMethod('max');
									callMethod('size');
								}
								break;
							case 'width':
								$('p').width(3000);
								break;
							case 'image':
								$('p').html('<img src="djb.jpg">');
								break;
						}

					}

					window.iFrameResizer = {
						messageCallback: init
					}
				}
				catch(e){
					warn(e);
				}




			})();
		</script>

LG Wolf
 
Zurück
Oben