2009-09-07 8 views
2

Je possède ce code:JQuery - comment ajouter un objet à iframe dans les navigateurs basés sur WebKit (chrome/safari)?

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#iframeId").contents().find("body").append($("#test")); 
    }); 
    </script> 
    <iframe id="iframeId" name="iframeId" src="about:blank" ></iframe> 
    <div id="test"> 
    Text 
    </div> 

et je dois ajouter objet entier à iframe (non seulement le code html()). Cela fonctionne bien dans IE, Firefox et Opera, mais je ne peux pas le faire dans Chrome/Safari. Y at-il un hack ou d'une autre façon, comment mettre l'objet html dans l'iframe, en travaillant avec WebKit?

EDIT

Je ne peux pas cloner l'objet (ou utiliser son intérieur Html), parce que je dois l'utiliser avec l'entrée de fichier et je ne peux pas le copier en raison des restrictions de sécurité.

+0

quelle version de jquery utilisez-vous? – yoda

+0

1.3.2 (à partir de googleapis) – TomT

Répondre

7

outerHTML. Cet exemple fonctionne très bien:

jQuery.fn.outerHTML = function() { 
    return $('<div>').append(this.eq(0).clone()).html(); 
}; 

$("#iframeId").contents().find("body").html($("#test").outerHTML()); 
$("#test").remove(); 

--edit

<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#iframeId").contents().find("body").html($("<div></div>").append($("#test")).html()); 
    }); 
    </script> 
    <iframe id="iframeId" name="iframeId" src="about:blank" ></iframe> 
    <div id="test"> 
    Text 
    </div> 

--edit II

$("#iframeLast").contents().find("body").append($("<form></form>").append($("#inputLast"))); 
+0

Mais ce clone l'objet, j'ai besoin d'utiliser le code dans la forme avec l'entrée de fichier, donc je ne suis pas capable de copier/cloner. – TomT

+0

Quelque chose comme ça pourrait servir? –

+0

Toujours pas, il n'ajoute pas d'entrée avec sa valeur. J'ai fait une page de test avec vos suggestions, vous pouvez le trouver ici: http://www.reznicci.cz/appendProblem/index.html. Si vous choisissez un fichier et cliquez sur le bouton, il doit déplacer l'entrée dans l'iframe et alerter sa valeur. Cela fonctionne dans IE, FF et Opera, mais pas dans Safari/Chrome. – TomT

Questions connexes