Hallo,
ich bin dabei, Discourse in eine MediaWiki-Instanz einzubetten, und dabei scheint ich ein seltsames Problem zu haben.
Wenn ich meine Wiki-Seite mit einem bestehenden Discourse-Thema verknüpfe, funktioniert alles einwandfrei:
window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',|
topicId: 18};
Aber wenn ich versuche, das Thema zu erstellen, schlägt es fehl:
window.DiscourseEmbed = { discourseUrl: 'https://forum.dev.tripleperformance.fr/',|
discourseEmbedUrl = 'https:' + mw.config.get('wgServer') + '/wiki/' + mw.config.get('wgPageName')};
Das Iframe wird zunächst einmal mit folgendem geladen:
<meta id="data-embedded" data-referer="https://wiki.dev.tripleperformance.fr/wiki/Sandbox">
Dann, nach 30 Sekunden (verursacht durch das meta http-equiv="refresh" im Iframe), wird das Iframe neu geladen mit:
<meta id="data-embedded" data-referer="https://forum.dev.tripleperformance.fr/embed/comments?embed_url=https%3A%2F%2Fwiki.dev.tripleperformance.fr%2Fwiki%2FSandbox">`
An diesem Punkt tritt ein Fehler in der Konsole auf:
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://forum.dev.tripleperformance.fr') does not match the recipient window's origin ('https://wiki.dev.tripleperformance.fr').
Das liegt wahrscheinlich daran, dass der Referer im data-embedded-Attribut nun auf sich selbst zeigt und nicht mehr auf die übergeordnete Seite (was möglicherweise sogar erwartet ist, da der Initiator des Neuladens sich selbst ist).
Hinweis: Ich arbeite auf einem Entwicklungsmaschine, die aufgrund von Docker und anderen Faktoren langsam ist. Es ist durchaus möglich, dass es sich um eine Race-Condition oder Ähnliches handelt…?