2009-03-11 1 views
2

J'ai une page simple avec un seul iFrame rendu. Il ya un lien appelé "Ajouter un fichier" et discrètement je voudrais attacher un événement à l'ancre "Ajouter un fichier" de sorte que lorsqu'il est cliqué, il insère un nouveau iFrame en dessous de celui existant avec l'ID de l'iFrame incrémenté.Javascript non intrusif pour insérer un élément qui contient une URL Rails RESTful?

Un exemple de l'iFrame serait:

<iframe name="uploadForm1" id="uploadForm1" src="<%= upload_file_url %>" height="50" width="800" frameborder="0" scrolling="no"></iframe> 

Ensuite, en cliquant sur le bouton « Ajouter un fichier » je finirais avec:

<iframe name="uploadForm1" id="uploadForm1" src="<%= upload_file_url %>" height="50" width="800" frameborder="0" scrolling="no"></iframe> 
<iframe name="uploadForm2" id="uploadForm2" src="<%= upload_file_url %>" height="50" width="800" frameborder="0" scrolling="no"></iframe> 

Quelle serait la meilleure approche (jQuery ou Prototype) pour accompagner cela?

Cela semble très trivial, cependant, en raison du fait que j'ai besoin de rendre la route upload_file_url, je ne sais pas trop comment l'aborder sans perdre beaucoup de temps!

Toute aide est appréciée!

Répondre

5

Cela devrait le faire pour vous:

var g_maxNum = 1; // The latest iframe number 

function copyIframe() 
{ 
    // Get the latest iframe 
    var iframe = document.getElementById('uploadForm' + g_maxNum); 
    g_maxNum++ 

    // Create a new iframe by cloning the existing one 
    var newIframe = iframe.cloneNode(true); 
    // Update the properties 
    newIframe.name = 'uploadForm' + g_maxNum; 
    newIframe.id = newIframe.name 

    // Insert it after the last iframe 
    iframe.parentNode.insertBefore(newIframe, iframe.nextSibling); 
} 
+0

Magnifiquement écrit, cependant, il est coincé sur « iframe.parentNode », qui est de retour nul. Dépannage maintenant. – mwilliams

+0

Oups, j'avais un .cloneNode supplémentaire là (la première ligne de la fonction) - fixe – Greg

+0

Merci beaucoup. J'ai le livre jQuery de Yahuda, j'ai vraiment besoin de creuser dedans. Je sais que j'ai déjà vu les fonctions du clone mais je n'étais même pas proche de cet état d'esprit; C'était une solution très élégante. Merci! – mwilliams