iframe innhold til post

adeneo

Medlem
Vet ikke om noen plugins for dette, men hvordan det gjøres kommer veldig an på hva du skal hente, og hvor det skal hentes fra.

Dersom det skal gjøres dynamisk med Ajax eller noe lignende må siden som vises i iFrame'n være på samme domene, ettersom Ajax ikke kan hente innhold fra andre nettsider.
Det har noe med sikkerhet å gjøre, og Ajax har derfor en cross-domain policy som gjør det vanskelig å hente innhold fra annet enn eget domene.

Dersom innholdet i iFrame'n ligger på eget domene er det enkelt å hente innholdet med jQuery's contents(), blir noe slikt:

Kode:
var iframe = $("#iframe_id").contents().find("body").html();

Variabelen "iframe" kan så gjøres om akkurat slik man vil og så sendes med Ajax til PHP for lagring på serveren.

Serveren kan også hente en hvilken som helst fil, ikke bare på eget domene, og PHP's file_get_contents() lar deg hente kildekoden til siden i iFramen, og du kan da lagre den kildekoden på serveren.

Du kan da for eksempel bruke Ajax til å kjøre en PHP fil med linken til iFramen vedlagt, og la PHP ta seg av filtrering og eventuelt konvertering til en post, og så lagre det på serveren som en vanlig post, eneste bakdelen er at man kun får kildekoden og ikke eventuelt innhold som igjen er satt inn dynamisk med Ajax på den siden man henter.

Et kjapt eksempel på hvordan det kan gjøres:

Kode:
<?php
$url = 'http://www.miniframelink.no';  <!--kan erstattes med en variabel fra en Ajax call-->

$file = @file_get_contents($url);       <!--henter koden-->

if ($file === FALSE) {
    echo "error";
} else {
    $lagrefil = "minpost.php";
    $fh = @fopen($lagrefil, 'w') or die ("kan ikke åpne");
    fwrite($fh, $file);                        <!--lagrer koden-->
    fclose($fh);
}
?>

Nå er det bare et eksempel, og du må vel lagre dataene slik at de kommer i systemet for poster, enter det er som enkelt filer, i en fil, i sql eller hva som måtte brukes, og det finnes ingen sikkerhet i den PHP koden, så hvis noen kan putte lenker inn i iFrame'n din så kan de i teorien også sende data til serveren din, noe som bør unngås (dersom man bruker Ajax calls vel og merke, ikke slik det er skrevet ovenfor).
Det bør vel kanskje også brukes curl i stedet for fh, men er ikke så veldig god på PHP, så skrev bare i full fart det jeg kom på.
 
Sist redigert:
Topp