Ensemble iframe à la hauteur du contenu pour du contenu distant
La question de savoir comment faire de votre iframe ajustement de 100% de votre contenu (à l'aide de JavaScript) a été répondu sur le forum déjà... pour iframes l'affichage d'un contenu à partir du même domaine seulement.
Mes questions: Est-il possible de redimensionner une iframe pour adapter le contenu lors de l'attribut src de l'iframe est pour une page en dehors du domaine de la page contenant l'image? Le navigateur des fonctions de sécurité entourant le cross-site scripting m'empêcher d'accéder à l'objet document pour l'iframe.
Je suis à la recherche de toute solution créative. Un de mes pensées fut en quelque sorte à détecter que les barres de défilement étaient visibles sur l'iframe, et pour augmenter progressivement la hauteur jusqu'à ce qu'ils ne l'étaient pas. Malheureusement, je ne peux pas trouver un moyen de détecter visible barres de défilement soit. Des idées?
Veuillez noter que je suis à la recherche d'un client-side solution.
Réponses:
Dave
Le problème existe toujours - je ne connais pas la hauteur de la télécommande document à l'avance, donc je ne peux pas le définir à partir d'une base de données ou une valeur querystring.
dusoft
100% sur l'iframe dans le CSS ne sera pas réglé à 100% de la teneur en à l'intérieur de l'iframe, mais par rapport à la page ou contenant de l'élément (c'est à dire, un div ou quelque chose).
Vous devez vous connecter pour publier un commentaire.
(Ma réponse à une question similaire)
Il est pas possible de le faire sans un certain contrôle sur la page iframed en raison de la sécurité du navigateur de modèle. Si c'était possible, ce serait un problème de sécurité et devrait être corrigé.
Bien que laissant l'intégration de site connaître la hauteur d'un tiers de la page web lorsqu'il est incorporé dans la page semble inoffensif, cela peut entraîner une fuite d'informations de l'intégration du site au navigateur de l'utilisateur veut garder privé. Par exemple, http://www.facebook.com/ rend différemment selon que vous soyez connecté ou pas, donc si mon site web peut travailler sur la hauteur de
<iframe src="http://www.facebook.com/">
alors je peux travailler si oui ou non vous êtes un facebook de l'utilisateur, quelque chose que vous probablement ne voulez pas de moi pour le savoir.La fuite de l'information serait semblable à la tristement célèbre CSS de l'Histoire de la Fuite fournisseurs de navigateur qui avait pour brancher.
Il est possible d'obtenir autour de la croix-site de limitation et de disposer d'une iframe set à la hauteur de son contenu, mais il peut être un peu difficile de l'obtenir pour fonctionner.
La solution consiste à travailler autour du modèle de sécurité par le iframed contenu de l'iframe d'une page sur le même serveur que la page parent, avec lequel il peut communiquer. J'ai répondu à une question similaire, à ceci avant de ici, ce qui va dans un juste peu de détail sur les tenants et les aboutissants de la mise de tous.
La mise en garde sur l'approche décrite est que vous devez avoir les moyens de l'obtention de votre iframed contenu lui-même iframe d'une page sur le serveur parent. C'est généralement achieveable lorsque le iframed contenu est-il dans le cadre d'un accord de partenariat entre les sites, mais YMMV.
Il semble que vous essayez de travailler autour d'une fonction de sécurité qui a été mis en place pour une bonne raison...
Ne le redimensionnement être par le biais d'un script? Vous pourriez vous rediriger vers une page où la taille de l'iframe est prise à partir d'une chaîne de requête, ou une base de données ou fichier de config, etc.
que sur l'utilisation de 100% en CSS? les barres de défilement peut être désactivée dans l'iframe, mais alors l'utilisateur ne sera pas en mesure de les faire défiler.
c'est le JS/XSS la prévention, donc s'en remettre et essayer de tirer le contenu sur le serveur et de le servir via la connexion locale.
Cela est théorique car je n'ai pas testé:
Si il y a du javascript var de Session ou de vars (qui ne peut pas être tiré à partir du contenu distant), vous pouvez au moins utiliser cette technique pour interroger le document à la taille de votre fichier local, définir l'iframe en conséquence, puis charger l'URL distante dans le redimensionnée iframe.
Cavat: vous n'avez aucun moyen de savoir d'Url pour les changements de page à l'intérieur de la distance de la page, donc vous ne pouvez utiliser cette technique sur la première page. Si la télécommande pages sont toutes à la même hauteur, ce n'est pas un problème.
pas la meilleure des solutions, mais vous pouvez essayer:
javascript pour écrire iframe, dans un iframe app régler la hauteur dans l'url #h700 pour 700 pixels etc; puis utiliser une boucle pour écouter cette modification, sur le site d'accueil "dans le javascript" pour lire la src="url#h700" et régler la hauteur de l'iframe par qui.