J'essaie de mettre google.com dans une iframe sur mon site Web, cela fonctionne avec de nombreux autres sites Web, y compris Yahoo. Mais cela ne fonctionne pas avec google car il affiche simplement une iframe vide. Pourquoi ne rend-il pas? Y a-t-il des astuces pour faire ça?
Je l'ai essayé de manière habituelle pour afficher un site Web dans un iframe comme celui-ci:
<iframe name="I1" id="if1" width="100%"
height="254" style="visibility:visible"
src="http://www.google.com"></iframe>
La page google.com ne s'affiche pas dans l'iframe, elle est juste vide. Que se passe-t-il?
window.property
ou quelque chose qui, à l'intérieur d'un IFrame, briserait une partie de l'affichage?<iframe src="https://www.google.com/webhp?igu=1"></iframe>
Réponses:
La raison en est que Google envoie un en-tête de réponse "X-Frame-Options: SAMEORIGIN". Cette option empêche le navigateur d'afficher des iFrames qui ne sont pas hébergées sur le même domaine que la page parent.
Voir: Mozilla Developer Network - L'en-tête de réponse X-Frame-Options
la source
iframe
: google.com/search?igu=1CE N'EST PAS IMPOSSIBLE.
Utilisez un serveur proxy inverse pour gérer le problème d'origine différente. J'utilisais Nginx avec
proxy_pass
pour changer l'url de la page. Tu peux essayer.Une autre façon consiste à écrire une simple page proxy exécutée sur le serveur par vous-même, il suffit de demander à Google et de transmettre le résultat au client.
la source
Comme cela a été décrit ici, étant donné que Google envoie un en-tête de réponse "X-Frame-Options: SAMEORIGIN", vous ne pouvez pas simplement définir le src sur " http://www.google.com " dans un iframe.
Si vous souhaitez intégrer Google dans une iframe, vous pouvez faire ce que sudopeople a suggéré dans un commentaire ci-dessus et utiliser un lien de recherche personnalisé Google comme celui-ci. Cela a très bien fonctionné pour moi (laisser «q =» vide pour commencer avec une recherche vide).
ÉDITER:
Cette réponse ne fonctionne plus. Pour plus d'informations et des instructions sur la façon de remplacer une recherche iframe par un élément de recherche personnalisée Google, consultez: https://support.google.com/customsearch/answer/2641279
la source
http://www.google.com/search?site=imghp&tbm=isch&q='searchstring'
mais parce qu'il utilise la recherche? et pas personnalisé? vous ne pourrez pas l'utiliser dans une iframeVous pouvez contourner X-Frame-Options dans une utilisation de YQL.
Exécutez-le ici: http://jsfiddle.net/2gou4yen/
Code à partir d'ici: Comment puis-je contourner les options X-Frame: en-tête HTTP SAMEORIGIN?
la source
http://query.yahooapis.com
parhttps://query.yahooapis.com
.Vous pouvez résoudre en utilisant Google CSE (Custom Searche Engine), qui peut être facilement inséré dans un iframe. Vous pouvez créer votre propre moteur de recherche, qui recherche des sites sélectionnés ou également dans toute la base de données de Google.
Les résultats peuvent être stylisés comme vous le souhaitez, également similaires au style Google. Google CSE fonctionne avec la recherche sur le Web et les images.
google.php
yourpage.php
la source
Cela fonctionnait car je l'utilisais pour créer des recherches Google personnalisées avec mes propres options. Google a apporté des modifications de leur côté et a cassé ma page de recherche personnalisée privée: (L'exemple ci-dessous ne fonctionne plus. C'était très utile pour les modèles de recherche complexes.
la toile
Je suppose que la meilleure option est d'utiliser simplement Curl ou similaire.
la source
Ce n'est pas idéal mais vous pouvez utiliser un serveur proxy et cela fonctionne très bien. Par exemple, allez sur hidemyass.com, mettez www.google.com et mettez le lien vers lequel il va dans un iframe et ça marche!
la source
Si vous utilisez PHP, vous pouvez utiliser
file_get_contents()
pour imprimer le contenu:Cela affichera n'importe quelle
file_get_contents()
fonction de contenu obtient dans cette URL. Veuillez noter que puisque vous affichez le contenu sous forme de chaîne au lieu d'une page Web réelle, des éléments tels que les images de chemin relatif ne s'affichent pas correctement, car /img/myimg.jpg se charge maintenant depuis votre serveur et non plus depuis google.com.Cependant, vous pouvez jouer avec quelques astuces comme la
str_replace()
fonction pour remplacer les URL absolues dans les images:la source