WebsiteBaker Community Forum
WebsiteBaker Support (2.13.x) => General Help & Support => Topic started by: radlerjudi on January 23, 2025, 05:27:53 PM
-
Hallo,
habe ein Problem bei hinzufügen einer Maps- Karte über iframe
Ich habe mehrere Webseiten bei der Version 2.13.6 r166 wird die eingebundene Maps Karte einwandfrei angezeigt.
Bei der Version 2.13.237 wird vor dem <iframe allerdings nach dem ersten Aufruf vor <ifram dann sandbox="" hinzugefügt. Die Karte wird dann nicht mehr aufgerufen.
Ja, ich habe die Suche genutzt, wurde aber nicht fündigt.
-
Vielleicht ist mein Problem nicht ganz klar geworden, also: Ich füge die Maps Karte mit dem HTML Schnipsel:
<iframe src="https://www.google.com/maps/d/embed?mid=1dFI3qLvt3_KFY40YVYR_tUlZv9Q&ehbc=2E312F" width="640" height="480"></iframe>
auf eine Seite bei mir ein.
Die Seite wird dann korrekt aufgerufen und die Karte angezeigt
Rufe ich die Seite erneut auf, wird die Karte als weißes Feld angezeigt und vor dem HTML Schnipsel wurde sandbox="" hinzu gefügt. Das ist der einzige Unterschied den ich im Quellcode der Seite festgestellt habe.
Wie kann ich das Einfügen von sandbox="" vermeiden?
-
Ich weiß jetzt nicht wo es herkommt. Aber als workaround könntest du selbst das Attribute setzen.
sandbox="allow-scripts"
Alternativ deinen Code in eine Code2(HTML) Section setzen. Geht das?
-
Danke für Deine Antwort.
Grundsätzlich: ich bin froh mit WebsiteBaker solch ein einfaches und anwenderfreundliche s CMS gefunden zu haben. Leider fehlen mir html Kenntnisse und so bin ich auf Eure Hilfe angewiesen, sobald etwas nicht funktioniert. Mit den alten WB Versionen habe ich es irgendwie hinbekommen, sehr umfangreiche Webseiten aufzubauen. Aber mit der Umstellung auf 2.13 habe ich nun meine Schrierigkeiten. Halt immer dann, wenn etwas nicht wie vorgesehen funktioniert.
Das mit dem Attribut setzen hat nicht funktioniert, denn das Attribute ist nach Aufruf der Seite wieder verschwunden und der Zustand sandbox="" wieder hergestellt.
Und zu der Frage "Geht das? Nein, das kann ich leider nicht
-
Ich glaube, es braucht hier ein paar mehr Informationen, z.b. wie und wo wurde der Iframe eingebunden.
Ist er z.b. in einer Code²-Section, sollte das nicht passieren. Eine CKEditor- bzw Wysiwyg-Section schaut da schon anders aus, dort ist das Sandbox-Attribut seit Version 4.21 ein Teil des Plugins - siehe hier -> https://ckeditor.com/blog/ckeditor-4.21-with-security-patches-and-potential-breaking-changes/#potential-breaking-changes
Ich bin da bei dbs. Bei mir funktioniert die Einbindung über den CKEditor -> Quellcode-Ansicht mit diesem Code
<p><iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="480" sandbox="" src="https://www.google.com/maps/d/embed?mid=1dFI3qLvt3_KFY40YVYR_tUlZv9Q&ehbc=2E312F" width="640"></iframe></p>
mit oder ohne <p>
ohne den sandbox-Eintrag, wie von dbs beschrieben, kann ich die von dir beschriebenen Fehler nachvollziehen
-
Also ich konnte das nachvollziehen, dass sandbox hinzugefügt wird und irgendwann die Map im Frontend nicht mehr angezeigt wurde.
Man könnte das umgehen durch
- Modul Code2 installieren
- Abschnitt Typ Code2 zur Seite hinzufügen
- den iframe Code da eintragen, vorher den Abschnitt von PHP auf HTML umschalten
Wenn die Map irgendwo mitten im Text erscheinen muss, dann über Droplet Sectionpicker versuchen den Code2 Abschnitt im Wysiwyg zu laden.
[[sectionpicker?sid=123]] (123 ist die Section ID des Code2 Abschnittes)
-
Nur, weil es zum Thema passt...
möchte man das sandbox-Attribut im Iframe-Plugin des CKEditors (ab Vers 4.21) nicht mehr haben, muß man die Datei /modules/ckeditor/ckeditor/ckeditor.js mit einem Editor wie z.b. Notepad++ öffnen und nach dieser Zeichenkette suchen
CKEDITOR.config.iframe_attributes={sandbox:""};
Diese muß entfent werden. Datei speichern, ggf ist das Löschen des Browsercache nötig
Im Hinterkopf behalten: ein späteres Update würde diese Änderung wieder überschreiben
-
Also ich konnte das nachvollziehen, dass sandbox hinzugefügt wird und irgendwann die Map im Frontend nicht mehr angezeigt wurde.
Man könnte das umgehen durch
- Modul Code2 installieren
- Abschnitt Typ Code2 zur Seite hinzufügen
- den iframe Code da eintragen, vorher den Abschnitt von PHP auf HTML umschalten
Wenn die Map irgendwo mitten im Text erscheinen muss, dann über Droplet Sectionpicker versuchen den Code2 Abschnitt im Wysiwyg zu laden.
[[sectionpicker?sid=123]] (123 ist die Section ID des Code2 Abschnittes)
Danke für diese Möglichkeit. Angesichts von ca 150 eingebundenen Karten, werde ich darüber allerdings den Überblick verlieren.
Und Sorry, dass ich mich jetzt erst melde, hate Schwierigkeiten mich im Forum anzumelden.
-
Nur, weil es zum Thema passt...
möchte man das sandbox-Attribut im Iframe-Plugin des CKEditors (ab Vers 4.21) nicht mehr haben, muß man die Datei /modules/ckeditor/ckeditor/ckeditor.js mit einem Editor wie z.b. Notepad++ öffnen und nach dieser Zeichenkette suchen
CKEDITOR.config.iframe_attributes={sandbox:""};
Diese muß entfent werden. Datei speichern, ggf ist das Löschen des Browsercache nötig
Im Hinterkopf behalten: ein späteres Update würde diese Änderung wieder überschreiben
Danke für den Tipp, es hat funktioniert. das war auch der einfachere Weg.
Bleibt für mich die Frage, warum ändert man so etwas, denn wie ich schon schrieb, war es in den ersten Versionen von 2.13. problemlos.
Als Laie ist man damit schnell überfordert, denn eigenlich bin ich nur ein kleiner, einfacher Anwender von WB.
-
Bleibt für mich die Frage, warum ändert man so etwas, denn wie ich schon schrieb, war es in den ersten Versionen von 2.13. problemlos.
da mußt du die CKEditor-Group fragen, wir sind da auch nur Nutzer ;-)
Wenn man sich dort etwas beliest, kommt man schnell auf Erklärungen, die vorallem die Sicherheit betreffen. Über das sandbox-Attribut kann ich z.b. zusätzliche Befugnisse mitgegeben, die ohne diese Angaben zu Fehlermeldungen oder gar dem Blockieren der Inhalte führen können - siehe dein Ergebnis
Hier gibt es eine recht gute Erläuterung zum Thema
https://web.dev/articles/sandboxed-iframes?hl=de
ich zitiere mal von diesem Abschnitt (https://web.dev/articles/sandboxed-iframes?hl=de#granular_control_over_capabilities) dort
Wenn ein iFrame ein leeres Sandbox-Attribut hat, wird das geframete Dokument vollständig in die Sandbox verschoben