Estou tentando colocar google.com em um iframe no meu site; isso funciona com muitos outros sites, incluindo o yahoo. Mas não funciona com o Google, pois mostra apenas um iframe em branco. Por que não renderiza? Existem truques para fazer isso?
Eu tentei de uma maneira normal para mostrar um site em um iframe como este:
<iframe name="I1" id="if1" width="100%"
height="254" style="visibility:visible"
src="http://www.google.com"></iframe>
A página google.com não é renderizada no iframe, apenas fica em branco. O que está acontecendo?
window.property
ou algo assim, que, dentro de um IFrame, quebraria parte do display?<iframe src="https://www.google.com/webhp?igu=1"></iframe>
Respostas:
A razão para isso é que o Google está enviando um cabeçalho de resposta "X-Frame-Options: SAMEORIGIN". Esta opção evita que o navegador exiba iframes que não estejam hospedados no mesmo domínio da página pai.
Vejo: Mozilla Developer Network - O cabeçalho de resposta X-Frame-Options
fonte
iframe
: google.com/search?igu=1NÃO É IMPOSSÍVEL.
Use um servidor proxy reverso para lidar com o problema de origem diferente. Eu costumava usar o Nginx com
proxy_pass
para alterar o url da página. Você pode tentar.Outra forma é escrever uma página proxy simples executada no servidor por você mesmo, basta solicitar do Google e enviar o resultado para o cliente.
fonte
Conforme descrito aqui, como o Google está enviando um cabeçalho de resposta "X-Frame-Options: SAMEORIGIN", você não pode simplesmente definir o src como " http://www.google.com " em um iframe.
Se você deseja incorporar o Google a um iframe, você pode fazer o que as pessoas sugeriram no comentário acima e usar um link de pesquisa personalizado do Google como o seguinte. Isso funcionou muito bem para mim (deixe 'q =' em branco para começar com a pesquisa em branco).
EDITAR:
Esta resposta não funciona mais. Para obter informações e instruções sobre como substituir uma pesquisa iframe por um elemento de pesquisa personalizado do Google, confira: https://support.google.com/customsearch/answer/2641279
fonte
http://www.google.com/search?site=imghp&tbm=isch&q='searchstring'
mas porque usa a pesquisa? e não personalizado? você não poderá usá-lo em um iframeVocê pode ignorar as opções do X-Frame em um usando YQL.
Execute aqui: http://jsfiddle.net/2gou4yen/
Código a partir daqui: Como posso ignorar as opções de X-Frame: cabeçalho HTTP SAMEORIGIN?
fonte
http://query.yahooapis.com
porhttps://query.yahooapis.com
.Você pode resolver usando o Google CSE (Custom Searche Engine), que pode ser facilmente inserido em um iframe. Você pode criar seu próprio mecanismo de busca, que busca sites selecionados ou também em todo o banco de dados do Google.
Os resultados podem ter o estilo de sua preferência, também semelhante ao estilo do Google. O Google CSE funciona com pesquisa na web e imagens.
google.php
yourpage.php
fonte
Isso costumava funcionar porque eu o usava para criar pesquisas personalizadas no Google com minhas próprias opções. O Google fez alterações e quebrou minha página de pesquisa personalizada privada :( O exemplo abaixo não funciona mais. Foi muito útil para padrões de pesquisa complexos.
rede
Acho que a melhor opção é apenas usar Curl ou similar.
fonte
Não é o ideal, mas você pode usar um servidor proxy e funciona bem. Por exemplo, vá para hidemyass.com coloque em www.google.com e coloque o link para onde ele vai em um iframe e funciona!
fonte
Se estiver usando PHP, você pode usar
file_get_contents()
para imprimir o conteúdo:Isso irá imprimir qualquer conteúdo
file_get_contents()
função de obtida neste url. Observe que, como você está exibindo o conteúdo como string em vez de uma página da web real, coisas como imagens de caminho relativo não são mostradas corretamente, porque /img/myimg.jpg agora está carregando de seu servidor e não mais de google.com.No entanto, você pode brincar com alguns truques como a
str_replace()
função de substituir urls absolutos em imagens:fonte