[JavaScript] script geht nur im ie

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] script geht nur im ie

    Code:
    <script type="text/javascript">
    <!--
    	function preview(b){	
    		bild = new Image;
    		bild.src = b;			
    		if(document.all) document.all.vorschaubild.src = bild.src;
    		if(document.getElementById || document.layers) document.getElementsByName('vorschaubild')[0].src = bild.src;				
    	}
    	//document.test.parent.value = top.opener;
    	//alert("top.opener: " + top.opener.location.href);
    	//top.opener.window.test();
    //-->
    </script>		
    <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
    Bild: <input type="hidden" name="MAX_FILE_SIZE" value="50000"><input type="file" name="userfile" onchange="preview(this.value)">
    <br />
    <br />
    <input type="submit" name="submit" value="Bild speichern">
    <br />
    <br />
    <u>Vorschau:</u><br />
    <div style="margin-left: 30px"><img src="spacer.gif" alt="" border="1" name="vorschaubild" height="50px" width="50px"></div>
    </form>
    im ie funktionierts, in opera&firefox gehts nicht, kann aber wahrscheinlich auch daran liegen, dass ich das getElementByName nicht richtig angewandt hab.

    btw: dieses script darf jeder verwenden, wenn er es braucht

    EDIT:
    updated, but still not working
    Zuletzt geändert von tomstig; 11.07.2004, 01:05.
    [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

  • #2
    Re: [JavaScript] script geht nur im ie

    darf ein name nur einmal pro dokument vorkommen?
    nein, mehrmals.

    und wie heißt die mehrzahl von element auf englisch ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      kein Wunder, dass es nur im IE funz, denn mit document.all kannst du die Elemente nirgends sonst ausser im IE ansprechen. Mehr dazu ... http://de.selfhtml.org/

      Kommentar


      • #4
        Original geschrieben von asp2php
        kein Wunder, dass es nur im IE funz, denn mit document.all kannst du die Elemente nirgends sonst ausser im IE ansprechen.
        deshalb hat er das ja auch erst mal mit if() auf existenz abgefragt.
        es wird aber auch noch auf existenz von getElementById abgefragt - also für mozilla & co.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          , ich glaube ich lasse mal mit dem Antworten bis ich einigermassen getrocknet bin ... Sch**sswetter.

          Kommentar


          • #6
            Re: Re: [JavaScript] script geht nur im ie

            Original geschrieben von wahsaga
            darf ein name nur einmal pro dokument vorkommen?
            nein, mehrmals.

            und wie heißt die mehrzahl von element auf englisch ...?
            script updated...
            jetzt sagt zwar der ie, dass es keine fehler mehr gibt, aber es geht noch immer nicht :/
            [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

            Kommentar


            • #7
              ok, ich poste, was ich bis jetzt hab, im ie funzt es perfekt, in firefox nicht
              interessanterweise zeigt er das bild in add_rec.php auch an, nur nicht in bild_upload.php..

              add_rec.php
              Code:
              <script type="text/javascript">
              <!--
              var wert = "";
              var bild;
              		
              function openwin(a) {
              	 wert = a;
              	 param = 'scrollbars=yes,resizable=yes,status=yes,'+getPos(500,350);
              	 bildwin1 =  window.open('./bild_upload.php','BildEditor1',param);
              	 bildwin1.winx = this;
              	 bildwin1.focus();
              }
              		
              function savebild(b) {
              		// wird aus dem Bildeditor aufgerufen
              	 var i;
              		if(document.all) eval("document.all."+wert+".value  = '"+b+"' ");	// update des Formularfeldes (IE)
              		if(document.getElementById || document.layers) eval("document.getElementsByName('"+wert+"')[0].value = '"+b+"' "); // für Mozilla und Netscape		  
              		bild = new Image;
              		bild.src = b;	// Url des Bildes
              	 bildwin1.close();
              	 if(document.all) eval("document.bi_"+wert+".src =  bild.src ");	// Bild einfuegen (IE)
              	 if(document.getElementById || document.layers) eval("document.getElementsByName('bi_"+wert+"')[0].src = bild.src "); // Mozilla und Netscape		  
              }
              		
              function getPos(x,y) {
              	param = 'width='+x+',height='+y
              	if(document.layers || document.getElementById) param = param+',screenX='+(screen.availWidth-x)/2+',screenY='+(screen.availHeight-y)/2;
              	if(document.all) param = param+',left='+(screen.availWidth-x)/2+',top='+(screen.availHeight-y)/2;
              	return param;
              }		
              //-->
              </script>
              .
              .
              .
              <tr>
              	<td class="border">	 
              	 <font class="option">Pic</font><br />
              	 <font class="help">Klicken Sie auf das Feld, um ein Bild einzufügen.</font>
              	</td>
              	<td class="border">	   
              	 <a href="#" onclick="openwin('pic')">
              	  <img src="<?php echo $rezept['pic'] ?>" width="50px" height="50px" border="1" name="bi_pic">
              	 </a>
              	 <input type="hidden" name="pic" value="<?php echo $rezept['pic'] ?>" readonly>
              	</td>
              </tr>
              bild_upload.php:
              Code:
              <?php
              if(!isset($_POST['submit'])){
              	?>	
              		<script type="text/javascript">
              		<!--
              			function preview(){	
              				bild = new Image;
              				
              				if(document.all){
              					bild.src = document.all.userfile.value;			
              					document.all.vorschaubild.src = bild.src;
              				}
              				if(document.getElementById || document.layers){
              					bild.src = document.getElementsByName('userfile')[0].value;			
              					document.getElementsByName('vorschaubild')[0].src = bild.src;				
              				}
              			}
              			//document.test.parent.value = top.opener;
              			//alert("top.opener: " + top.opener.location.href);
              			//top.opener.window.test();
              		//-->
              		</script>		
              		<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
              		Bild: <input type="hidden" name="MAX_FILE_SIZE" value="50000"><input type="file" name="userfile" onchange="preview()">
              		<br />
              		<br />
              		<input type="submit" name="submit" value="Bild speichern">
              		<br />
              		<br />
              		<u>Vorschau:</u><br />
              		<div style="margin-left: 30px"><img src="spacer.gif" alt="" border="1" name="vorschaubild" height="50px" width="50px"></div><br />
              		<br />
              		Vorschau funktioniert leider nur im IE, versuch es aber grad auch Mozilla und Netscape tauglich zu machen
              		</form>
              	<?php
              }else{
              	#echo "Name: " . $_FILES['userfile']['name'] . "<br />";
              	#echo "tmp_name: " . $_FILES['userfile']['tmp_name'];
              	$info = @getimagesize($_FILES['userfile']['tmp_name']);
              	#echo "<pre>";
              	#print_r($info);
              	#echo "</pre>";
              	#die();	
              	if($_FILES['userfile']['tmp_name']==""){
              		echo "Feld ist leer.<br />";
              		echo "<input type='button' value='Zurück' onclick='history.back()'>";
              	}elseif($_FILES['userfile']['size']>20000){
              		echo "Ihr Bild ist leider zu groß: Es darf nicht größer als 20kb sein.<br />";
              		echo "<input type='button' value='Zurück' onclick='history.back()'>";
              	}elseif($info['2'] != 1 && $info['2'] != 2 && $info['2'] != 3){
              		echo "Ihr Bild entspricht nicht dem gewünschten Format: Sie dürfen nur Bilder im Format jpg, gif oder png uploaden.<br />";
              		echo "<input type='button' value='Zurück' onclick='history.back()'>";
              	}else{
              		$upload_file = "bilder/" . $_FILES['userfile']['name'];
              		$bild_upload_sql = "INSERT INTO recipies SET pic='" . $upload_file . "'";
              		#$bild_upload_query = mysql_query($bild_upload_sql) or die("Fehler beim Einfügen der Bilddaten: " . mysql_error());
              		if(move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_file)){
              			?>
              			<script type="text/javascript">
              			<!--
              				//alert("top.opener: " + top.opener.location.href);
              				function ret(pfad) {
              					if(top.opener) {
              						top.opener.window.savebild(pfad);
              						//alert(top.opener.location.href);
              					}
              				}
              				
              			//-->
              			</script>
              			Upload erfolgreich! <br/>
              			Das ist Ihr Bild:<br />
              			<img src='<?php echo $upload_file ?>' border='1' alt='Das ist Ihr upgeloadetes Bild'><br />
              			<br />
              			<input type="button" value="Bild einf&uuml;gen & Fenster schließen" onclick="ret('<?php echo $upload_file ?>')">
              			<?php
              		}else{
              			echo "Fehler beim Uploaden<br />";
              			echo "Information über die Bilder: <br />";
              			echo "<pre>";
              			print_r($_FILES);
              			echo "</pre>";
              		}	
              	}
              }
              ?>
              Zuletzt geändert von tomstig; 11.07.2004, 17:13.
              [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

              Kommentar


              • #8
                --push--
                [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                Kommentar


                • #9
                  keine ahnung, was du da veranstaltest, aber vielleicht hilft das weiter:
                  http://www.php-resource.de/forum/sho...threadid=18211
                  Kissolino.com

                  Kommentar


                  • #10
                    Original geschrieben von Wurzel
                    keine ahnung, was du da veranstaltest, aber vielleicht hilft das weiter:
                    http://www.php-resource.de/forum/sho...threadid=18211
                    profecto, es hat geholfen
                    hab nur das depperte file:/// vergessen... thx
                    [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                    Kommentar


                    • #11
                      mhh.... kann es sein, dass im firefox onchange nicht wirklich funzt??
                      [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                      Kommentar


                      • #12
                        Original geschrieben von tomstig
                        mhh.... kann es sein, dass im firefox onchange nicht wirklich funzt??
                        Nur wenn man nicht damit umgehen kann
                        h.a.n.d.
                        Schmalle

                        http://impressed.by
                        http://blog.schmalenberger.it



                        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                        ... nur ohne :-)

                        Kommentar


                        • #13
                          Das Problem ist, dass du mit JS keine Dateien auf dem UserPC öffnen kannst, beim IE ist eine Ausnahme und gleichzeitig auch eine Sicherheitslücke.

                          Um den Vorschau für andere Browser zu realisieren musst du das Bild erst hochladen, dann kannst du zeigen, wenn der User ok klickt, erst dann speichern.

                          Ansonstens gibt es auch einen Trick über Java-Applet und auch ohne Applet aber auch nur mit Netsi. Mehr dazu: http://aktuell.de.selfhtml.org/artik...pen/testoa.htm

                          Kommentar


                          • #14
                            Original geschrieben von tomstig
                            mhh.... kann es sein, dass im firefox onchange nicht wirklich funzt??
                            versuchs mal mit nem anderen eventhandler
                            Original geschrieben von asp2php
                            Das Problem ist, dass du mit JS keine Dateien auf dem UserPC öffnen kannst, beim IE ist eine Ausnahme und gleichzeitig auch eine Sicherheitslücke.
                            das ist in dem zusammenhang unsinn ... er will die datei nicht auslesen, sondern anzeigen
                            Kissolino.com

                            Kommentar


                            • #15
                              Original geschrieben von Wurzel

                              das ist in dem zusammenhang unsinn ... er will die datei nicht auslesen, sondern anzeigen
                              du darfst nochmals überlegen

                              [COLOR=silver]um die Datei anzuzeigen, muss der Browser sie vom lokalen LW lesen, also ...[/COLOR]

                              Kommentar

                              Lädt...
                              X