“DataCloneError: L'objet ne peut pas être cloné.” dans FireFox 34

À l'aide de la fonction de poster un message, mais d'avoir d'erreur "DataCloneError: L'objet ne peut pas être cloné." à la Ligne "cible['postMessage'](message, target_url.remplacer( /([^:]+://[^/]+).*/, '$1'));" dans FireFox-34, le même code fonctionne très bien sur Chrome et ancienne version de FireFox.

var storage = function() {
    return {
           postMessage : function(message, target_url, target) {
           if (!target_url) { 
              return; 
           }
           var target = target || parent;  //default to parent
           if (target['postMessage']) { 
                   //the browser supports window.postMessage, so call it with a targetOrigin
                   //set appropriately, based on the target_url parameter.
                   target['postMessage'](message, target_url.replace( /([^:]+:\/\/[^\/]+).*/, '$1'));
               }               
         }
    }
}();
Quel est le type de "message" qui est d'essayer d'être affiché lorsque l'erreur se produit? Blob ou d'un Fichier peut-être?
Si le message variable passée comprend des nœuds du DOM des objets comme un DocumentFragment objet, vous aurez besoin de convertir une chaîne de caractères à l'aide de la XMLSerializer.prototype.serializeToString méthode avant de l'envoyer. Vous pouvez utiliser un DOMParser objet ou de la Element.prototype.innerHTML, Element.prototype.insertAdjacentHTML, ou Element.prototype.outerHTML méthodes pour unserialize l'objet sur l'autre extrémité.

OriginalL'auteur Krishna | 2014-12-19