Beiträge von Sempervivum

    Wenn es sehr viele Fotos sind, empfiehlt es sich, gleich auf dem Server mit PHP zu filtern. Ein geeignetes Filterkriterium zu finden ist u. U. nicht so einfach:

    Das Beste wäre das Aufnahmedatum in den EXIF-Informationen, aber dabei kann man nicht sicher sein, ob diese vorhanden sind. Sie können z. B. bei einer Bearbeitung verloren gegangen sein. Zweite Möglichkeit ist der Zeitpunkt der Erstellung der Datei. Problem dabei: Dies ist in der Regel der Zeitpunkt, wann die Datei auf den Server hochgeladen wurde und der kann erheblich vom Zeitpunkt der Aufnahme abweichen. Wenn Du die Website jetzt neu aufbaust sowieso.

    Zunächst würde ich empfehlen, mit einem PHP-Skript eine Bestandsaufnahme zu machen, ob die EXIF-Informationen vorhanden sind.

    Manche sagen ja, "geht nicht - gibt's nicht" und das mit dem URL-Parameter funktioniert tatsächlich:

    Seite 2 mit dem Button:

    Seite 1 mit der Tabelle:

    Zitat

    Also wenn ich z.B. einen Button auf Seite 2 betätige führt das dazu, dass für den Button auf Seite 1 die click() Methode ausgeführt wird.

    Eigentlich kein Problem, aber leider wäre das, genau so wie das Auslesen des HTML, ein Cross-Domain-Zugriff und würde genau so vom Browser abgewiesen.

    Was man versuchen könnte, ist, einen URL-Parameter beim Einbinden an die Seite 1 zu übergeben, die das Speichern veranlasst. Werde ich versuchen ...

    Jetzt wird mir das Problem klar: Bei mir funktioniert es, weil ich lokal mit einem Webserver teste. Du möchtest es jedoch lokal laufen lassen ohne Webserver. Und dann blockt Chrome es wegen Cross-Origin-Gesichtspunkten. Auf Anhieb fällt mir da keine Lösung ein. Einziehen mit PHP entfällt ja dann auch. Ich überlege weiter.

    Zitat

    Jetzt wird mir die komplette Seite 1 angezeigt. Ich hatte jetzt den Ansatz nur den Button hier zu sehen, also den Rest im iFrame auszublenden

    Wenn Du den iFrame nicht sehen möchtest, ist es kein Problem, ihn mit CSS und display:none unsichtbar zu machen.

    Ich habe mal schnell ein Demo gemacht. Seite 2 mit dem Button und dem iFrame:

    Und save-as-docx-content.html ist die Seite mit der Tabelle, die gespeichert werden soll und dem Skript, das sie erzeugt.

    Aber möglicher Weise verstehe ich dich noch falsch.

    Da hatte entweder ich dich oder Du mich falsch verstanden. Du hattest geschrieben:

    Zitat

    kann ich diesen Button auch in eine andere HTML Seite einbauen, sodass aber trotzdem diese (mit der Tabelle) gespeichert wird?

    Sagen wir Seite 1 ist die mit der Tabelle, die gespeichert werden soll und Seite 2 die mit dem Button. Auf Seite 2 wird jetzt Seite 1 in einem iFrame eingebunden. Drückt man den Button auf Seite 2 wird der Inhalt von Seite 1 aus dem iFrame eingelesen und gespeichert. Wenn dies nicht das ist, was Du dir vorgestellt hast, korrigiere mich.

    Gern geschehen.

    Zitat

    kann ich diesen Button auch in eine andere HTML Seite einbauen, sodass aber trotzdem diese (mit der Tabelle) gespeichert wird?

    Auch dafür ist mir eine einfache Lösung eingefallen: Da dies offensichtlich nicht Cross-Domain ist, kannst Du das Dokument auf der Seite, wo der Button ist, in einen iFrame einlesen und von dort das HTML auslesen.

    Ich habe das htmtdocx mal getestet. Es läuft zwar ohne Fehlerausgaben durch, aber das Dokument ist leer. Dieses Problem wird hier diskutiert:

    https://github.com/evidenceprime/html-docx-js/issues/19

    und der Grund ist offenbar, dass OpenOffice, GoogleDocs etc. die Altchunk-Technologie unterstützen. Selber habe ich Softmaker-Office und dafür könnte das auch gelten. Sicher hast Du MS-Office, dann probiere doch Mal, ob es damit funktioniert.

    Zitat

    kann ich diesen Button auch in eine andere HTML Seite einbauen, sodass aber trotzdem diese (mit der Tabelle) gespeichert wird?

    Müsste ich überlegen, ob das möglich ist, ohne etwas serverseitiges einzubeziehen. Vielleicht hilft es aber schon, wenn Du den Button, ebenso wie die Skripts, aus dem DOM ausblendest.

    Was das docx-Format betrifft, recherchiere ich mal ...

    Da fällt mir nur etwas ein, das etwas kompliziert ist:

    DOM mit jQuery einlesen, Skript-Elemente entfernen und das HTML speichern:

    Das download.js bekommst Du hier:

    https://github.com/rndme/download