Próbuję umieścić google.com w ramce iframe w mojej witrynie. Działa to z wieloma innymi witrynami, w tym z Yahoo. Ale to nie działa z Google, ponieważ pokazuje tylko pusty element iframe. Dlaczego się nie renderuje? Czy są jakieś sztuczki, aby to zrobić?
Wypróbowałem to w zwykły sposób, aby wyświetlić witrynę internetową w takim elemencie iframe:
<iframe name="I1" id="if1" width="100%"
height="254" style="visibility:visible"
src="http://www.google.com"></iframe>
Strona google.com nie jest renderowana w ramce iframe, jest po prostu pusta. Co się dzieje?
window.property
lub czegoś, co wewnątrz ramki iFrame zepsułoby część wyświetlacza?<iframe src="https://www.google.com/webhp?igu=1"></iframe>
Odpowiedzi:
Powodem tego jest to, że Google wysyła nagłówek odpowiedzi „X-Frame-Options: SAMEORIGIN”. Ta opcja zapobiega wyświetlaniu przez przeglądarkę ramek iFrame, które nie są hostowane w tej samej domenie co strona nadrzędna.
Zobacz: Mozilla Developer Network - nagłówek odpowiedzi X-Frame-Options
źródło
iframe
: google.com/search?igu=1TO NIE JEST NIEMOŻLIWE.
Użyj odwrotnego serwera proxy, aby rozwiązać problem z innym pochodzeniem. Kiedyś używałem Nginx
proxy_pass
do zmiany adresu URL strony. możesz spróbować.Innym sposobem jest samodzielne napisanie prostej strony proxy działającej na serwerze, po prostu zażądaj od Google i wyślij wynik do klienta.
źródło
Jak zostało to tutaj przedstawione, ponieważ Google wysyła nagłówek odpowiedzi „X-Frame-Options: SAMEORIGIN”, nie można po prostu ustawić src na „ http://www.google.com ” w ramce iframe.
Jeśli chcesz osadzić Google w ramce iframe, możesz zrobić to, co sudopeople zasugerowały w powyższym komentarzu i użyć niestandardowego linku wyszukiwania Google, takiego jak poniżej. To zadziałało świetnie dla mnie (pozostawione „q =” puste, aby rozpocząć od pustego wyszukiwania).
EDYTOWAĆ:
Ta odpowiedź już nie działa. Aby uzyskać informacje i instrukcje, jak zastąpić wyszukiwanie iframe elementem wyszukiwarki niestandardowej Google, zobacz: https://support.google.com/customsearch/answer/2641279
źródło
http://www.google.com/search?site=imghp&tbm=isch&q='searchstring'
ale dlatego, że używa wyszukiwania? a nie niestandardowe? nie będzie można go używać wMożesz ominąć X-Frame-Options w używającym YQL.
Uruchom go tutaj: http://jsfiddle.net/2gou4yen/
Kod z tego miejsca: Jak ominąć opcje ramki X: Nagłówek HTTP SAMEORIGIN?
źródło
http://query.yahooapis.com
zhttps://query.yahooapis.com
.Możesz rozwiązać problem za pomocą Google CSE (Custom Searche Engine), który można łatwo wstawić do elementu iframe. Możesz stworzyć własną wyszukiwarkę, która przeszukuje wybrane witryny lub całą bazę danych Google.
Wyniki mogą być stylizowane według własnego uznania, podobnie jak w Google. Google CSE współpracuje z wyszukiwarką sieciową i graficzną.
google.php
yourpage.php
źródło
To działało, ponieważ używałem go do tworzenia niestandardowych wyszukiwań Google z własnymi opcjami. Google wprowadziło zmiany na ich końcu i zepsuło moją prywatną niestandardową stronę wyszukiwania :( Próbka nie działa już poniżej. Było to bardzo przydatne w przypadku złożonych wzorców wyszukiwania.
sieć
Myślę, że lepszą opcją jest użycie Curl lub podobnego.
źródło
Nie jest to idealne rozwiązanie, ale możesz użyć serwera proxy i działa dobrze. Na przykład przejdź do hidemyass.com, wstaw www.google.com i umieść link, do którego prowadzi, w ramce iframe i działa!
źródło
Jeśli używasz PHP, możesz
file_get_contents()
wydrukować zawartość:Spowoduje to wydrukowanie dowolnej
file_get_contents()
funkcji zawartości, którą otrzyma w tym adresie URL. Zwróć uwagę, że ponieważ wyświetlasz treść jako ciąg znaków zamiast rzeczywistej strony internetowej, rzeczy takie jak obrazy ścieżek względnych nie są wyświetlane poprawnie, ponieważ /img/myimg.jpg ładuje się teraz z Twojego serwera, a nie z google.com.Możesz jednak pobawić się pewnymi sztuczkami, takimi jak
str_replace()
funkcja, aby zastąpić bezwzględne adresy URL w obrazach:źródło