2012-07-04 6 views
1

Je sais qu'il y a beaucoup de sujets à ce sujet, mais aucun n'a fonctionné. J'ai juste besoin d'avoir du contenu iframe (pas de code source).Impossible d'obtenir le contenu iframe

J'ai un formulaire, qui envoie des paramètres à un autre serveur et je le cible en iframe (qui se trouve sur la même page). Donc, je reçois serveur code responce storred dans mon iframe sans rafraîchir la page:

<form name='vin_form' id='file_upload_form' action='*****' method='post'> 
    <input name='name1' value='value1'> 
    <input name='name2' value='value2' type='hidden'> 
    <input name='name3' value='value3' type='hidden'> 
    <div onclick=\"document.getElementById('file_upload_form').target = 'upload_target'; document.vin_form.submit();\">Send form</div> 
</form>"; 

<iframe id='upload_target' name='upload_target'></iframe> 

Pour obtenir le contenu iframe je tout, mais rien ne fonctionnait:

jQuery('#upload_target').load(function() 
    { 
      alert(jQuery('#upload_target').contents().find('body').html()); 

      var myIFrame = document.getElementById('upload_target'); 
      var content = myIFrame.contentWindow.document.body.innerHTML; 
      alert(content); 

      alert(window.frames.upload_target.document.body); 
    } 
); 

Je l'ai lu « règle d'origine », mais Je pense que cela ne devrait pas être interdit dans mon cas, parce que je peux accéder à cette page par url et lire tout le code, alors pourquoi je ne peux pas le faire par programmation?

P.S .: Existe-t-il d'autres moyens d'obtenir le code de réponse d'un autre serveur? (Curl php ne fonctionne pas en raison d'une défense cadre du site)

+3

Eh bien, à faire les deux pages ont la même origine? Vous dites que vous pensez ... vous devriez vérifier pour vous assurer. –

+3

Je suis d'accord avec Šime, si vous pouvez y accéder par l'URL alors vous êtes sur ce site et c'est cool; Si vous le chargez à partir d'un iframe, vous n'êtes pas sur la même origine à moins que votre site et la cible de l'iframe ne se trouvent sur le même domaine. Cela pourrait vous aider si vous pouviez clarifier ce que vous espérez accomplir et pourquoi vous le faites de cette façon. –

+3

Avez-vous des erreurs dans la console javascript de votre navigateur? –

Répondre

1

* Mise à jour - essayez ceci:

var t = document.getElementById("upload_target"); 
var y =(t.contentWindow || t.contentDocument); 
alert(y.document.body.innerHTML) 
+0

il est en fait lié à l'événement onload de l'iframe (jquery a deux méthodes '.load()'). aussi, la méthode de chargement ajax supprime 'body' et' head' et ces choses - s'il avait utilisé ça, je veux dire. – nbrooks

+0

@ nbrooks je sais qu'ils sont deux méthode de chargement, je vais supprimer la partie de la charge de la réponse. – undefined

+0

Non, cela ne fonctionne pas :(Il gère l'erreur: "Autorisation refusée pour accéder à la propriété 'document'" –