1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Problem mit JavaScript

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von themoetrix, 31.07.07.

  1. themoetrix

    themoetrix Finkenwerder Herbstprinz

    Dabei seit:
    30.03.06
    Beiträge:
    465
    Hallo,

    ich habe ein Problem und ich kriege langsam die Krise. Ich habe das <div> imagefield in das ich ein Bild laden möchte. Dazu nutze ich diesen Code!

    imagefield.innerHTML += '<img src="' + response.result['message'] + '" id="tmp">';
    var tmpImage = document.getElementById("tmp");
    alert(tmpImage.width);

    In response.result['message'] steckt der link zum Bild.

    Das dumme ist nur, das er bei dem alert() für die Breite 0 ausgibt. Beim zweiten Durchlauf funktioniert es. Ich glaube, das der Browser mit dem Bildladen nicht so fix ist wie das alert() mit der Ausgabe.

    Gibt es eine Möglichkeit das Bildladenabzuwarten?
     
  2. creative7even

    creative7even Jerseymac

    Dabei seit:
    23.02.05
    Beiträge:
    454
    Hallo!

    hab mir mal ein wenig den kopf zerbröselt...
    so sollte es funktionieren (mit safari & ff):

    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    	<title>debug</title>
    	<script type="text/javascript">
    	/*<![CDATA[*/
    	
    	function init() {
    		var imageField = document.getElementById("imageField");
    		imageField.innerHTML = '';
    		
    		var imgSrc = "testImage.jpg";
    
    			// preload image
    		var imgObj = new Image();
    		imgObj.src = /*response.result['message']*/ imgSrc;
    		imgObj.onload = function(e) {
    			var imageWidth = imgObj.width;
    			var imageHeight = imgObj.height;
    			
    				// create and insert image
    			var img = document.createElement("img");
    			img.src = imgObj.src;
    			img.width = imageWidth;
    			img.height = imageHeight;
    			imageField.appendChild(img);
    			alert(imageWidth);
    			alert(imageHeight);
    			
    				// free IE5/IE6 memroy
    			imgObj.onload = null;
    		}
    	}
    	
    	window.onload = init;
    	
    	/*]]>*/
    	</script>
    </head>
    <body>
    
    	<div id="imageField"></div>
    
    </body>
    </html>
    
     

Diese Seite empfehlen