Dom textareas durch iframe "ersetzen"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dom textareas durch iframe "ersetzen"

    hallo,

    folgendes problem:

    ich möchte in einem dokument, genauer innerhalb einer form, textareas ausblenden und durch ein iframe quasi ersetzen lassen. hierzu hab ich mir gedacht das ich alle forms durchlaufe und die textareas mittels css-display verschwinde lasse. bis dahin auch noch kein problem. Aber, wie bekomm ich neben der textarea ein iframe eingefügt mittels javascript?

    ich weiss das ich mittels createElement ein iframe erzeugen kann aber wie bekomm ich es dann auch neben der textarea eingefügt?

    was dom betrifft hab ich nicht die grosse erfahrung.

    also z.b.

    <form>

    <input>

    <textarea></textarea> <-- hier soll das iframe hin, die textarea wird mittels display:none ausgeblendet

    </form>
    mfg

  • #2
    mit OBJEKT.insertBefore

    http://de.selfhtml.org/javascript/ob...#insert_before

    das erste beispiel fügt vor dem OBJEKT ein, das zweite beispiel nach OBJEKT (mit hilfe von.nextSibling)

    gruss

    Comment


    • #3
      vielen Dank, das kommt dem ganzen schon ganz nah. mal sehen was sich noch draus ergibt.
      mfg

      Comment


      • #4
        ja, also es hat gut geklappt. ich kann jetzt die textareas durch iframes ersetzen lassen..

        PHP Code:
        function lauf(){
             var 
        ta document.forms[0].getElementsByTagName('textarea');
             for ( 
        i=0;i<ta.length;i++){
                
        ifrdocument.createElement("iframe");
                
        document.getElementById(ta[i].id);
                
        t.style.display="none";
                
        document.forms[0].insertBefore(ifr,t);
             }

        mfg

        Comment


        • #5
          eine frage hab ich dann doch noch, ich modifiziere mittels setAttribute die form

          setAttribute("onsubmit","return process();")

          .. in firefox funktioniert das ganze, wenn ich das formular absende wird process ausgeführt, nur im internet explorer nicht

          jemand eine Ahnung warum das so ist, leider hat der ie nicht die tollen debug-möglichkeiten wie ich es mit dem firefox mittels Firebug hab.

          vielen dank und grüße

          edit, noch der code

          PHP Code:
          function process(){
              
          fo document.forms;
              for(
          i=0;i<fo.length;i++){
                  
          el document.forms[i].getElementsByTagName("textarea");
                  for(
          a=0;a<el.length;a++){
                      if(
          el[a].id != ""){
                          
          document.getElementById("ta_"+el[a].id);
                          
          ifrm = (IEX) ? window.frames["ta_"+el[a].id].document d.contentWindow.document;
                          
          el[a].value ifrm.body.innerHTML;
                      }
                  }
              }

          Last edited by hall; 27-09-2006, 16:21.
          mfg

          Comment


          • #6
            Wurde nicht schon x-fach hier erwähnt, dass setAttribute im IE oftmals zu Fehlern führt ...?


            Ja, wurde es - und auch, welche Notation stattdessen verwendet werden sollte.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Comment


            • #7
              danke wahsaga, hab das jetzt gefunden.

              ich hab jetzt statt setAttribute diese form benutzt

              element.attribut = wert

              allerdings möchte ich "onsubmit" als attribut zuweisen, aber das ist nicht vorgesehn.

              setAttribute("onsubmit","return process();")

              wie schreib ich das in eine für beide browser verträgliche version?
              mfg

              Comment


              • #8
                ok, danke wahsaga, habs jetzt hinbekommen

                document.forms[0].onsubmit= function(){ return process(); };

                grüße
                mfg

                Comment

                Working...
                X