Hallo Jürgen,
Ja, ich meine einen "normalen http-Request / Ajax. Wenn IE8/9 nicht unterstützt werden müssen, reicht das für CORS. IE8/9 haben hierfür eine eigene Methode.
Wenn der generische Fallback mit dem iFrame funktioniert, braucht man sich um den alten IE imho nicht mehr kümmern.
Der Fall "kein Javascript" interessiert mich nicht mehr. Wer Javascript abschaltet, muss mit den Nebenwirkungen leben.
Ich sehe das etwas anders: Wenn es für mich mit minimalem Aufwand umsetzbar ist, dann wird ein Fallback eingebaut. Außerdem könnte ein Werbeblocker oder ein Privatssphäreschutz auf die Idee kommen, das Script von der fremden Domain zu blocken.
Mein Markup würde etwa so aussehen:
<section>
<h2>Veranstaltungskalender</h2>
<a href="https://kalender.example.org/12345" id="calendar" data-target="12345">Zum Veranstaltungskalender</a>
<script src="https://kalender.example.org/script.js" async></script>
</section>
Das Attribut data-target
brauchen wir, damit das Script weiß, welche Seite es einbinden muss. Wir haben dann drei sogar Fallback-Ebenen:
- Link (kein JS)
- iFrame (kein CORS)
- per Ajax eingebetteter Inhalt (Ziel)
Bei den beiden letzten Punkten wird der Link durch das iFrame bzw. den Inhalt ersetzt.
Das Risiko von Kollisionen im CSS kann man durch eine vernünftige Namenswahl auf ein vertretbates Maß reduzieren.
Andererseits könnte man ja mit den „Kollisionen“ auch dafür sorgen, dass der Inhalt sich besser dem Design der Seite anpasst. Linuchs hatte damit ja schon mal zu tun.
Gruß
Julius