2009-06-17 30 views
0

Ich habe eine Webseite, die ich für einen Kunden hosste. Die Seite hat die Kopf- und Fußzeile des Kunden und unseren Inhalt (eine Flash-App) in der Mitte.Wie füge ich meine Webseite in einen iframe ein?

Der Client möchte uns nun eine HTML-Seite zur Verfügung stellen, die Kopfzeile, Fußzeile und einige Anzeigen in einem Dokument enthält. Sie möchten, dass wir dieses Dokument als Iframe einfügen und dann unseren Inhalt dynamisch in diesen Rahmen einfügen.

Das scheint sehr hacky zu mir, aber ich dachte, ich würde es versuchen. Also, was ist der beste Weg, um mein Markup zu nehmen und es in den Iframe zu platzieren?

Danke! Chris

+0

So befindet sich dieses HTML-Dokument, das der Client bereitstellt, auf einem anderen Server? Der Grund, warum Ihre Frage verwirrend ist, liegt darin, dass Sie angeben, dass Sie derjenige sind, der sie hostet. Wenn es sich um einen anderen Server handelt, können Sie nicht Code in sein Dokument einfügen, um dynamischen Inhalt zu laden. Es gibt eine riesige Sicherheitslücke dort, wenn Sie in der Lage, ohne ihre "Erlaubnis" – Sev

Antwort

1

Kann nicht clientseitig aufgrund von XSS-Sicherheitsproblemen getan werden ... es sei denn, sie sind beide auf der gleichen Domäne, aber aus Ihrer Beschreibung, bezweifle ich es.

Serverseitig können Sie die Zielseite dynamisch lesen, sie beliebig ändern und dann präsentieren. Wenn Sie es wirklich tun müssen, in einem Iframe, können Sie dynamisch die modifizierte Quelle laden Sie so etwas wie dies bekommen:

<html> 
<head></head> 
<body> 
<iframe id="blah"></iframe> 
<script> 
var doc=document.getElementById("blah").contentDocument; 
doc.open(); 
doc.write("content"); 
doc.close(); 
</script> 
</body> 
</html> 

Denken Sie daran, auch keine Links, Bilder zu ändern, und so weiter mit voller URLs.

+0

gibt es eine Möglichkeit, eine Whitelist usw. zu pflegen, damit einige Domänen meine App als iframe einbetten lassen? – Vik

0

Können Sie ihnen eine API zur Verfügung stellen, die sie verwenden können - damit sie etwas in ihre Seite einfügen können, um Ihre Bits zu nennen. Da Sie mit Flash arbeiten, können Sie Cross-Site-Scripting-Probleme vermeiden, indem Sie eine Richtliniendatei hinzufügen, um ihrer Domäne Berechtigungen zu erteilen.

Verwandte Themen