0 votes
in SoSci Survey (dt.) by s109993 (12.0k points)
edited by s109993

Würde es Probleme geben, wenn wir einen SoSci Link als iFrame in Lime Survey einbinden? Inklusive Login etc.? Ist zwar etwas sinnfrei, aber ein Kunde würde sich das ggf. wünschen.

Und Zusatzfrage:
Wie wäre es theoretisch möglich die Login ID von LimeSurvey an SoSci zu übergeben?
Vielleicht kennt sich ja jemand mit LimeSurvey aus.

Viele Grüße

2 Answers

0 votes
by SoSci Survey (328k points)

Ja, das sollte unproblematisch möglich sein, s. auch Frame-Weiterleitung.

Inwiefern LimeSurvey die Login ID verfügbar macht, kann ich nicht beantworten. Aber die Übergabe an SoSci Survey wäre dann relativ einfach - zum Beispiel als Referenz im Link.

Zum Thema "sinnfrei": Wenn Sie spezifizieren, warum der Kunde den LimeSurvey-Rahmen wünscht, kann ich mir gerne Gedanken machen, ob man das auch mit SoSci Survey direkt lösen könnte. Der Login über eine statische Benutzer/Passwort-Liste beherrscht SoSci Survey auch - wenn die Logins hingegen dynamisch von einem externen Dienst gezogen werden, wird es ein wenig komplizierter. Dann kann der Workaround sinvoll sein.

by s109993 (12.0k points)
Könnten Sie noch auf meine Antwort antworten? :)  (falls das untergegangen ist). Nur um sicherzugehen, dass ich auf dem richtigen Weg bin.
0 votes
by s109993 (12.0k points)

Falls LimeSurvey einen Platzhalter machen kann mit der ID/Login, dann müsste doch der folgende Weg funktionieren: Damit würde ja LimeSurvey quasi die ID an SoSci übergeben.
Oder bin ich da auf dem falschen Weg?

<iframe src="https://xxxxxx/?r==%caseNumber%"  height="800" width="1100" frameborder="0" allowFullScreen="true" webkitallowfullscreen="true" mozallowfullscreen="true">
    Your browser doesn't support iframes
</iframe>

<script>
// add allowfullscreen attribute to the iframe
document.getElementsByTagName("iframe")[0].getAttribute("src") == "https://cba-online.de/MakAdaptLesen_ff512fe5_1e20_42da-8caf_c9e27e7b83cd/?uid=%caseNumber%" ? document.getElementsByTagName("iframe")[0].setAttribute("allowFullScreen", true):null;

// refresh the iframe container
document.getElementsByTagName("iframe")[0].src = document.getElementsByTagName("iframe")[0].src
</script>
by SoSci Survey (328k points)
Antworten werden mir - anders als Kommentare - nicht direkt angezeigt. Außerdem war ich nicht sicher, ob das eine Frage war oder eine Antwort :)

> Oder bin ich da auf dem falschen Weg?

Also, vom Prinzip her sieht das ganz gut aus. Allerdings ist das %caseNumber% natürlich etwas SoSci-spezifisches. Wie es bei LimeSurvey funktioniert, weiß ich nicht.

Und das Script unter dem iFrame scheint mir für das Abspielen von Medieninhalten im Vollbildmodus gemacht ... hier sehe ich spotant keine zwingende Notwendigkeit, etwas davon zu verwenden.

Ich hatte ja in meiner Antwort schon in die Anleitung verlinkt, wo Sie ebenfalls einen <iframe>-HTML-Code finden - dort ohne Optimierungen zum Abspielen von Medieninhalten.
by s109993 (12.0k points)
Alles klar, mir war nicht sicher, ob Sie eine Benachrichtigung bekommen beim Antworten.

Der Codebaustein war aus einer alten SoSci Umfrage, wo wir von SoSci auf ein anderes Tool weitergeleitet haben. Dann werde ich das einmal ausprobieren. Danke für die Hilfe!
by s109993 (12.0k points)
Der Kunde, welcher die SoSci Seite in LimeSurvey einbetten möchte, hat folgende Rückfrage gestellt:

+++++++
In dem momentanen Testportal erscheint nach dem Klick auf "Daten abschicken" erscheint eine Abschlussseite. Falls SoSci ähnlich wie LimeSurvey funktioniert, gehe ich davon aus, dass es den Seitenwechsel braucht, um die Eingaben zu submitten.

D.h. die postMessage könnte von der "Abschlussseite" onload gesendet werden. Bspw.
parentWindow.postMessage({ event: 'response', func: 'update_stored' }, "*")
+++++++

Wissen Sie, wie ich das integrieren kann?
by SoSci Survey (328k points)
> Falls SoSci ähnlich wie LimeSurvey funktioniert, gehe ich davon aus, dass es den Seitenwechsel braucht, um die Eingaben zu submitten.

Das ist korrekt, SoSci Survey arbeitet mit HTML-Formularen, welche durch ein "Submit" an den Server übermittelt werden. Eine Ausnahme stellen interne Variablen dar, welche Daten auch im Hintergrund übermitteln können (sofern man das aktiviert).

> D.h. die postMessage könnte von der "Abschlussseite" onload gesendet werden. Bspw.
parentWindow.postMessage({ event: 'response', func: 'update_stored' }, "*")

Ja, das wäre wohl möglich, also ...

<script>
window.addEventListener("load", function() {
  parentWindow.postMessage({ event: 'response', func: 'update_stored' }, "*");
});
</script>

Wobei Sie sich die Referenz zu postMessage() nochmal ansehen müssten. Ob Sie diesen Code dann auf die "Letzte Seite" packen oder davor noch eine zusätzliche Seite anlegen, das macht technisch keinen Unterschied.
by s109993 (12.0k points)
Danke, ich versuche es einmal. Leider kann ich es nicht testen, was die ganze Sache etwas kompliziert macht. Könnten Sie noch kurz ein Satz dazu sagen, was Sie mit "Wobei Sie sich die Referenz zu postMessage() nochmal ansehen müssten." genau meinen?
by SoSci Survey (328k points)
Wenn der Fragebogen von SoSci Survey als iFrame in einer anderen Website eingebunden ist, dann können die beiden Fenster miteinader kommunizieren - zum Beispiel über window.postMessage(), vgl. https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage (das ist die Referenz, die ich meinte).

Heißt, der SoSci-Fragebogen schickt eine Message an das umgebende Fenster, also an LimeSurvey. Dort sollte ein JavaScript-Prozess die Nachricht entgegen nehmen und verarbeiten.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...