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.
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:
<body>
und lege es in dein Element div
<head>
element und füge sie an das <head>
Element deines bestehenden Pgae an. 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
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.
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.