Alternatief voor <iframe>?

Pagina: 1
Acties:

Onderwerpen


  • DiedB
  • Registratie: September 2011
  • Nu online
De titel zegt eigenlijk al genoeg, want na veel zoeken heb ik het niet gevonden. Ik heb een alternatief nodig voor iframe. Ik wil een simpele HTML-pagina met tekst via een iframe op mijn eigen pagina plaatsen, en dat werkt op zich, maar de iframe past zijn hoogte niet aan aan de hoogte van de content erin. Dit geeft problemen met de box eromheen (tekst is daar te kort voor of te lang voor, tekst verandert namelijk elke dag).

Gezien het feit dat ik nog wat meer pagina's nodig heb en daarvan enkel een deel wil (alleen de tabel die erop staat), zou ik graag iets hebben waarmee ik elke paar minuten een exacte kopie van de pagina op mijn server kan krijgen (zodat laadtijden wat sneller gaan) en ik het nodige deel met javascript kan opvragen (document.getElementById).

Weet iemand hier een oplossing voor of een ander alternatief? Alvast bedankt!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

De pagina met PHP ophalen, en laten outputten op de plek waar je normaal gesproken de iframe er in zet. Het is quicky en ook dirty. Maar het werkt opzich wel.

Maar hierdoor heb je ook wel weer de nodige tools om dat weer wat op te schonen en andere zaken te filteren.

[ Voor 12% gewijzigd door RaZ op 27-09-2012 18:53 ]

Ey!! Macarena \o/


  • C0rnelis
  • Registratie: Juni 2010
  • Laatst online: 26-08 22:21
Een andere (niet per se betere) optie is http://api.jquery.com/load/ en varianten van andere libraries.

[ Voor 20% gewijzigd door C0rnelis op 27-09-2012 20:49 ]


Acties:
  • 0 Henk 'm!

  • DiedB
  • Registratie: September 2011
  • Nu online
Dank voor de antwoorden!
RaZ schreef op donderdag 27 september 2012 @ 18:52:
De pagina met PHP ophalen, en laten outputten op de plek waar je normaal gesproken de iframe er in zet. Het is quicky en ook dirty. Maar het werkt opzich wel.

Maar hierdoor heb je ook wel weer de nodige tools om dat weer wat op te schonen en andere zaken te filteren.
De pagina met PHP ophalen is gelukt, nu het outputten nog. Ik heb wat scripts geprobeerd in javascript/jquery maar het lukt me niet om de php-pagina op de HTML-pagina te outputten. Is het ook mogelijk de PHP-pagina met een ander lettertype in de HTML-pagina te krijgen?

Acties:
  • 0 Henk 'm!

  • ParadoxMedia
  • Registratie: September 2012
  • Laatst online: 01-08 14:27
De pagina met PHP ophalen is gelukt, nu het outputten nog. Ik heb wat scripts geprobeerd in javascript/jquery maar het lukt me niet om de php-pagina op de HTML-pagina te outputten. Is het ook mogelijk de PHP-pagina met een ander lettertype in de HTML-pagina te krijgen?
Store de actie die de content ophaalt in een variabel. Lees hem daarna uit en op basis daarvan kan je je gegevens uit echo'en.

Voorbeeld:
$section = file_get_contents('./people.txt');
var_dump($section);

[ Voor 0% gewijzigd door ParadoxMedia op 28-09-2012 09:17 . Reden: Typo ]


Acties:
  • 0 Henk 'm!

  • DiedB
  • Registratie: September 2011
  • Nu online
ParadoxMedia schreef op vrijdag 28 september 2012 @ 09:17:
[...]


Store de actie die de content ophaalt in een variabel. Lees hem daarna uit en op basis daarvan kan je je gegevens uit echo'en.

Voorbeeld:
$section = file_get_contents('./people.txt');
var_dump($section);
Na wat zoeken op internet kom ik daar niet veel verder mee, zal komen omdat ik heel weinig weet over PHP en javascript ook niet vaak gebruik. Als ik de var_dump eraan toevoeg komt de kopie van de pagina 2 keer in de PHP te staan.

Dit staat nu in de PHP-file
PHP:
1
2
3
4
5
<?
$bestand = "http://www.example.com";
$mededelingen = file_get_contents($bestand);
echo $mededelingen;
?>


Als ik na het uploaden rechtstreeks naar de PHP file ga (/mededelingen.php) zie ik op deze pagina de gewenste output (een directe kopie van de bronsite).

Wat ik nu wil, is met javascript deze PHP file in een div in mijn HTML-code zetten (de div is een tekstvak, kan daarbinnen dus nog een div). Welke code kan ik hiervoor in javascript gebruiken (zal niet meer dan 3 regels zijn maar ik kom er niet uit)?

[ Voor 4% gewijzigd door DiedB op 28-09-2012 10:01 ]


Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 19-09 21:09
http://api.jquery.com/load/
code:
1
$('#b').load('article.html #target');

Laad de inhoud van #target uit article.html in #b

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Werkt alleen niet vanaf een extern domein natuurlijk, zonder proxy.

Maar goed.. als het van een extern domein komt is techniek niet het grootste euvel, maar eerder de copyright ;)

Acties:
  • 0 Henk 'm!

  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 19-09 21:09
Nee maar hij heeft het PHP deel toch al werkend, dus hij hoeft alleen maar mededelingen.php op te roepen. Eventueel kan je in PHP al strippen wat je nodig hebt, dan heb je die #target ook niet nodig.

Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Wat ik gedaan heb, is een PHP script gemaakt, welk javascript output, behoorlijk quick en very dirty. Maar het werkt, en daar ging het om.

Ik had dan wel het voordeel dat de site waar ik 1 pagina van "leende" een frameset site is welk met Word 97 gemaakt is. Er hoefde maar weinig "gestript" te worden.

Juist gekozen voor javascript om de content er in te zetten, zodat de content niet wordt geindexeerd.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php

$cont = file_get_contents("***URL HIER***");

$my_pos = strpos(strtolower($cont),"<body");
$start_pos = strpos($cont,">", $my_pos)+1;
$my_pos = strpos(strtolower($cont),"</body>");
$cont = trim(substr($cont,$start_pos,$my_pos-$start_pos));

$cont = str_replace(" ALIGN=\"CENTER\""," style=\"margin-top:5px;\"",$cont);
$cont = str_replace("A HREF","A style=\"color:black;text-decoration:underline;\" HREF",$cont);
$cont = str_replace("'","\'",$cont);
$cont = str_replace("\r","",$cont);
$cont = str_replace("\n","",$cont);

echo "function some_function() {\r\n";
echo "  document.write('" .$cont ."');\r\n";
echo "}\r\n";

?>


En dan in de HTML had ik:
HTML:
1
2
3
4
5
6
7
8
9
<head>
<script type="text/javascript" src="scripts/some_script.php"></script>
</head>
..
<body>
<script type="text/javascript">
  some_function();
</script>
</body>

Redelijk ranzig, maar effectief ;)

Ey!! Macarena \o/


  • Barryvdh
  • Registratie: Juni 2003
  • Laatst online: 19-09 21:09
Best wel ranzig ja. Ik zou het een stuk netter vinden om gewoon je html op te slaan als een .html bestandje, en dan met javascript dat bestand inladen, in plaats van dat zo met document.write te doen. (of dus een php bestand dat die html weergeeft)
Verder is curl volgens mij vaak sneller dan file_get_contents, en zou je kunnen kijken naar een nette manier om je html te parsen, in plaats van op deze manier the gaan str_replacen, voor het geval er niet iets kleins veranderd.
Zie ook http://stackoverflow.com/...and-process-html-with-php waarmee je bijvoorbeeld met DOMDocument en DOMXPath door je html kan lopen en evt. dingen aanpassen.
En dingen als margins geven aan een p-element, of een a underlinen, kan je gewoon met css doen, daar hoef je niet met php styles te gaan inlinen.
Pagina: 1