html - usage - Come mostrare google.com in un iframe?




youtube parameters (5)

È possibile bypassare X-Frame-Options in un utilizzando YQL.

var iframe = document.getElementsByTagName('iframe')[0];
var url = iframe.src;
var getData = function (data) {
    if (data && data.query && data.query.results && data.query.results.resources && data.query.results.resources.content && data.query.results.resources.status == 200) loadHTML(data.query.results.resources.content);
    else if (data && data.error && data.error.description) loadHTML(data.error.description);
    else loadHTML('Error: Cannot load ' + url);
};
var loadURL = function (src) {
    url = src;
    var script = document.createElement('script');
    script.src = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20data.headers%20where%20url%3D%22' + encodeURIComponent(url) + '%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=getData';
    document.body.appendChild(script);
};
var loadHTML = function (html) {
    iframe.src = 'about:blank';
    iframe.contentWindow.document.open();
    iframe.contentWindow.document.write(html.replace(/<head>/i, '<head><base href="' + url + '"><scr' + 'ipt>document.addEventListener("click", function(e) { if(e.target && e.target.nodeName == "A") { e.preventDefault(); parent.loadURL(e.target.href); } });</scr' + 'ipt>'));
    iframe.contentWindow.document.close();
}

loadURL(iframe.src);
<iframe src="http://www.google.co.in" width="500" height="300"></iframe>

Eseguilo qui.

http://jsfiddle.net/2gou4yen/

Codice da qui: Come posso ignorare le X-Frame-Options: SAMEORIGIN HTTP Header?

Sto cercando di inserire google.com in un iframe sul mio sito Web, questo funziona con molti altri siti web tra cui Yahoo. Ma non funziona con Google in quanto mostra solo un iframe vuoto. Perché non rende? Ci sono trucchi per farlo?

L'ho provato in un modo normale per mostrare un sito Web in un iframe come questo:

<iframe name="I1" id="if1" width="100%" 
 height="254" style="visibility:visible" 
 src="http://www.google.com"></iframe>

La pagina google.com non viene visualizzata nell'iframe, è vuota. Cosa sta succedendo?


Come è stato delineato qui, perché Google sta inviando un'intestazione di risposta "X-Frame-Options: SAMEORIGIN" non puoi semplicemente impostare la src su " http://www.google.com " in un iframe.

Se desideri incorporare Google in un iframe, puoi fare ciò che sudopeople ha suggerito in un commento sopra e utilizzare un link di ricerca personalizzato di Google come il seguente. Questo ha funzionato benissimo per me (lasciato 'q =' vuoto per iniziare con la ricerca vuota).

<iframe id="if1" width="100%" height="254" style="visibility:visible" src="http://www.google.com/custom?q=&btnG=Search"></iframe>

MODIFICARE:

Questa risposta non funziona più. Per informazioni e istruzioni su come sostituire una ricerca di iframe con un elemento di ricerca personalizzato di google, consulta: https://support.google.com/customsearch/answer/2641279


Non è l'ideale ma puoi usare un server proxy e funziona perfettamente. Ad esempio, vai su hidemyass.com messo in www.google.com e metti il ​​link in un iframe e funziona!


Puoi risolvere utilizzando Google CSE (Custom Searche Engine), che può essere facilmente inserito in un iframe. È possibile creare il proprio motore di ricerca, che ricerca siti selezionati o anche in tutto il database di Google.

I risultati possono essere stilizzati come preferisci, anche in stile Google. Google CSE funziona con ricerca web e immagini.

google.php

<script>
  (function() {
    var cx = 'xxxxxxxxxxxxxxxxxxxxxx';
    var gcse = document.createElement('script');
    gcse.type = 'text/javascript';
    gcse.async = true;
    gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(gcse, s);
  })();
</script>
<gcse:searchresults-only></gcse:searchresults-only>

yourpage.php

<iframe src="google.php?q=<?php echo urlencode('your query'); ?>"></iframe>

NON È IMPOSSIBILE.
Utilizzare un server proxy inverso per gestire il problema dell'origine diversa. proxy_pass Nginx con proxy_pass per cambiare l'URL della pagina. Puoi fare una prova.

Un altro modo è di scrivere una semplice pagina proxy eseguita sul server da solo, basta chiedere a Google e inviare il risultato al cliente.







html