JoomlaCamp 2018 Essen - 03.02.2017 in Essen

Aufruf der joomla Funktion "iFrameHeight()" von PHP aus

    Aufruf der joomla Funktion "iFrameHeight()" von PHP aus

    Hallo,

    ich habe mir einen Menüeintrag erstellt, der über "Iframe Wrapper" eine lokales php-file einbindet. In dem php-file sind Verlinkungen zu anderen php-files, die liegen aber auch lokal auf dem Server (localhost) neben Joomla. Zudem ist die Option "Auto Height" ausgewählt.

    Bei allen php-files klappt das gut mit "Auto Height", nur bei einen php-file, dass die Länge (height) ändert, nachdem der User ein "onclick" ausführt (es wird Text zur Seite hinzugefügt), habe ich Probleme. Dann enstehen unschöne Scroll-Balken. Sprich der iframe bekommt nichts mit von der veränderten Länge der eingebetteten php-Seite.

    Wenn ich auf der Google-Chrome-Browser-Console "iFrameHeight()" ausführe, wird die Seite passend und die Scroll-balken verschwinden. Die Funktion "iFrameHeight()" ist in \media\com_wrapper\js\iframe-height.min.js

    Frage: Wie bekomme ich nun im php-file die Kommunikation zum iframe (joomla) hin, sodass ich vom lokalen php-file (das im iframge gewrappt ist) aus mit Joomla "sprechen" kann und die Funktion "iFrameHeight()" aufrufen kann?

    Besten Dank,

    Martin
    Danke für den Link Christine. Aber leider passt es nicht ganz zu meinem Problem.

    Ich möchte aus einem PHP-file heraus mit Joomla kommunizieren und die Funktion "iFrameHeight()" aus \media\com_wrapper\js\iframe-height.min.js aufrufen,
    um die Höhe des iFrames anzupassen. Das php-file liegt ebenfalls auf dem Server und ist mit dem iframe wrapper eingebunden.

    Ich denke, ich muss im PHP-file dass eingebettet ist, den Befehl rausschicken, dass die iFrameHeight neu zu machen ist.

    Meine Vermutung geht in Richtung:

    PHP-Quellcode

    1. <?php if(JRequest::getVar('auto')) : ?>
    2. <script language="javascript" type="text/javascript">
    3. window.addEvent('load',iFrameHeight());
    4. </script><?php endif; ?>


    aber das liefert ​Uncaught ReferenceError: iFrameHeight is not defined

    Gebe ich "iFrameHeight()" auf der Browser-Console ein, erhalte ich das erwünschte Ergebnis.
    Ich habe es mal getestet wie im o.g. Link beschrieben. Leider werden dann andere verlinkte php Dateien nicht gefunden. (Die Ansatz, setzt ich erst mal auf Plan B).

    Ich würde gerne den Weg mit der Funktion "iFrameHeight()" eiter verfolgen. Das scheint mir z.Z. am zielführendsten für mein Problem zu sein.

    Wie kann ich denn aus einem eingebetteten php-file joomla-Funktion "iFrameHeight()" die aufrufen? Gibt es da eine API? Über kleine Code-Schnipsel wäre ich sehr dankbar.

    Gruß Martin
    Ja, lokal heißt "neben" Joomla auf dem gleichen Server. Ich habe wie in ghsvs.de/programmierer-schnips…ner-php-dateien-verwenden beschrieben, die PHP Datei eingebunden. Die eingebundene PHP Datei prüft gleicht am Anfang, ob eine andere PHP Datei im gleichen Verzeichnis vorhanden ist. Das ist sie, jedoch, bekam ich das Warning von meinem if-Statement, dass die Datei angeblich fehlt. Des Weiteren, hätte ich schon gern meine PHP-Seiten mit iframe/wrapper in meine Joomla-Seite eingebettet.

    Wie gesagt, die Funktion, die mir die Höhe anpasst ist ja da ("iFrameHeight()" --> \media\com_wrapper\js\iframe-height.min.js) ich möchte diese aus meiner PHP-Seite aufrufen, sprich meinem Framework sagen,führ bitte "iFrameHeight()" aus, um die Höhe anzupassen.

    Gruß Martin

forum.joomla.de is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.