Fügen Sie eine Webseite in ein div ein

8

Ich muss eine Webseite in das div meiner Webseite einfügen. Ich möchte etwas wie iframe mit DIV machen. Grundsätzlich werde ich meinem div eine URL zur Verfügung stellen und sie in sich selbst öffnen ... Haben wir so etwas im modernen HTML? Ich kann keine Frames verwenden, da einige Browser Probleme mit Frames haben.

    
Varun 07.07.2011, 09:31
quelle

6 Antworten

4

Nein. Sie können kein vollständiges HTML-Dokument in ein anderes div-Element einbetten, da dies ein Block-Level-Element ist und W3C definiert hat, was darin enthalten sein könnte.

Aber es gibt einen Workaround. Befolgen Sie diese Schritte:

  1. Erhalte das Dokument mit ajax (jQuery rockt, benutze das)
  2. Extrahiere den Inhalt des Elements <body> und lege es in dein Element div
  3. Erhalte alle Links und Skripte von <head> element und füge sie an das <head> Element deines bestehenden Pgae an.
Saeed Neamati 07.07.2011, 09:36
quelle
16

Versuchen Sie es mit einem <object> Element:

%Vor%     
Jan 16.09.2012 13:31
quelle
1

Sie sollten iframe verwenden. Das ist im Grunde, wofür Iframes sind. Wenn Sie auf jeden Fall mit modernen Browsern bleiben, haben sie keine Probleme mit iframes (nicht mehr als Sie stattdessen mit divs konfrontiert werden müssen) ...

    
Headshota 07.07.2011 09:36
quelle
1

Sie können iframe verwenden oder wenn Sie sich dafür entscheiden, jQuery load function ( Ссылка ) zu verwenden, müssen Sie das Cross-Scripting vermeiden Problem - Sie müssen eine Art von Proxie erstellen, werfen Sie einen Blick auf diese: Webbrowser-Steuerelement: Deaktivieren Sie Cross-Site-XSS-Filterung oder eine andere Möglichkeit, JS vollständig in HTML zu verarbeiten

    
kleinohad 07.07.2011 09:52
quelle
0

Es hätte in der Frage selbst sein sollen, aber das OP hat den Grund geklärt, warum er ein iframe nicht verwenden möchte, weil Interframe-Kommunikation nicht erlaubt ist. Nun, das ist nichts, was ein Proxy + postMessage nicht lösen kann.

Ich glaube, es gibt einfach keine Möglichkeit, ein vollständiges Dokument in ein anderes Dokument einzubetten, wobei Dinge wie die Trennung von Stilen und Skripten und dergleichen beibehalten werden, ohne Frames in irgendeiner Weise zu verwenden.

    
Alan H. 08.07.2011 18:37
quelle
0

Das ist wirklich eine Erweiterung von Saeeds Antwort. Um Probleme mit Cross Site Scripting zu umgehen, müssen Sie auf Ihrem eigenen Server ein Skript schreiben, das einen CURL-Aufruf für die zu integrierende Webseite ausführt. Ihr JavaScript wird dann einen Aufruf an dieses Skript machen und die URL als GET / POST-Parameter übergeben.

Ich stimme mit vielen anderen Leuten hier überein, dass dies ein Fall ist, in dem Sie wirklich nur einen iframe verwenden sollten ... Ich glaube, Sie können den iframe ohne src-Tag setzen und den Inhalt manuell darin einfügen. Das würde bedeuten, dass du nicht die Schritte unternehmen musst, die Saeed vorgeschlagen hat, um Kopf und Körper zu zerbrechen. Sie benötigen jedoch immer noch das Skript, das ich beschrieben habe, um Cross-Site-Scripting zu umgehen.

    
Endophage 08.07.2011 18:45
quelle

Tags und Links