2010-11-26 13 views
0

L'événement de chargement n'est pas déclenché après le téléchargement d'un fichier PDF en tant que lien à l'iframe. des idées?L'événement de chargement iframe n'est pas déclenché dans jquery

jQuery.download = function(url, data, method, callback){ 
    var inputs = ''; 
    var iframeX; 
    var downloadInterval; 
    if(url && data){ 
     // remove old iframe if has 
     if($("#iframeX")) $("#iframeX").remove(); 
     // creater new iframe 
     iframeX= $('<iframe src="[removed]false" name="iframeX" id="iframeX"></iframe>').appendTo('body').hide(); 


      iframeX.load(function(){ 
       callback(); 
      }); 



     //split params into form inputs 
     $.each(data, function(p, val){ 
      inputs+='<input type="hidden" name="'+ p +'" value="'+ val + '" />'; 
     }); 

     //create form to send request 
     $('<form action="'+ url +'" method="'+ (method||'post') + '" target="iframeX">'+inputs+'</form>').appendTo('body').submit().remove(); 
    }; 
}; 

MA REPONSE:

donc c'est le meilleur bidouille jusqu'à présent je suis arrivé à résoudre ce problème, il utilise le fait que le menu contextuel « Enregistrer sous » fenêtre rend la fenêtre principale de mise au point.

var onBlur=function(){ 
    $('#spinner').html(""); 
} 

    if (/*@[email protected]*/false) { // check for Internet Explorer 
     document.onfocusout = onBlur; 
    } else { 
     window.onblur = onBlur; 
    } 

Répondre

0

Je ne vois pas de code de chargement PDF dans votre exemple, mais je suppose que le lecteur de PDF en cours d'exécution dans le cadre est pas de navigateur, il ne supporte pas les événements HTML standard.

Postez une autre question vous demandant de vous informer sur . Ensuite, nous pouvons peut-être aider.

[EDIT] Ce que je veux dire: Où dans tout ce qui est un document HTML chargé qui pourrait générer un événement HTML? Vous mettez un PDF dans le cadre; Les fichiers PDF ne génèrent pas d'événements HTML.

Mais une solution pourrait être d'envoyer deux demandes: D'abord une requête AJAX (s'exécute en arrière-plan) puis POST le formulaire. Le serveur doit maintenir la requête AJAX en attente jusqu'à ce que le fichier PDF ait été envoyé au client, puis répondre à la demande AJAX. Cela vous donnera une indication lorsque le PDF a été transmis. Ce n'est pas parfait cependant.

+0

pas de visionneuse pdf. Im soumettre le formulaire et obtenir un type de contenu = pdf dans la réponse, ce qui déclencher le navigateur pour ouvrir la boîte "enregistrer sous" – Ricardo

+0

Ce que je veux dire: Où dans tout ce qui est un document HTML chargé qui pourrait générer un événement HTML? Vous mettez un PDF dans le cadre; Les fichiers PDF ne génèrent pas d'événements HTML. –

+0

Oui, j'ai besoin de synchronisation entre les fonctions du côté serveur pour cela à travers par exemple. vars de session que je ne veux pas faire rite maintenant. ajouté une minuterie de 10s donc dans le pire des cas, il s'arrêtera après cela .. – Ricardo

Questions connexes