Clicking either the dark area around the iframe or the x at the top right corner closes the lightbox. The same way it works for default image lightboxes.
Settings
There’s only one setting. You add the domains that you want to have this functionality on there.
Correct, this component will not mess with any whitelisting settings at all.
In order for any iframe to show up in the cooked content of a post - expandable or not - it has to be on the list of allowed_iframes setting like you pointed out.
@Johani is this component still functional? If so, any thoughts on why I am not getting the pop-out diagonal-arrows in the upper-right, but rather a blank/dead box?
Here is what I’ve tried:
Updated themes/components.
Made sure src links were white-listed in the component and the Discourse settings.
Tried a few different links, including Google Maps.
Tried several scenarios with the Media Overlay on/off + Lightbox alone on/off.
thank you very much for conceiving and maintaining this theme component.
After installing it on https://community.hiveeyes.org/ the other day, some users recently started to complain that the overall appearance of the head of the page looked different for them. They finally found out the reason was that they blocked cloudflare altogether, so all requests to https://cdnjs.cloudflare.com/ajax/libs/featherlight/1.7.13/featherlight.min.js would fail.
So, we are humbly asking if there would be a way for you to provide this component in a self-contained variant?
Pas besoin de vous excuser, c’est bien de voir que vous avez pu lui accorder un peu d’attention, entre toutes les autres choses qui se passent. Nous apprécions vraiment cela.
Je ne connais aucun composant existant qui fasse cela, vous devriez donc en créer un ou commander ce travail dans la catégorie Marketplace.
Ce composant de thème vérifie les iFrame dans un message et compare leur attribut src à une liste de sources éligibles fournie par l’administrateur dans les paramètres du composant. Si le domaine source correspond, il ajoute le bouton lightbox. L’affichage de la lightbox est géré par featherlight.js. Featherlight écoute les clics sur les éléments avec l’attribut data-featherlight. Si l’un d’eux est cliqué, il ouvre la lightbox avec le contenu de cet iFrame.
Vous pouvez faire de même avec les balises <a> dans un composant différent avec un peu de manipulation. Si le href du lien correspond à un domaine répertorié dans les paramètres du composant, affichez-le dans une lightbox en iframe. Sinon, laissez-le comme un lien normal. Vous ne voulez pas que tous les liens s’ouvrent dans une iframe en lightbox.
La plupart du travail requis est déjà géré par ce composant, vous pouvez donc simplement le forker et commencer à partir de là. Il n’est pas prévu d’ajouter cette fonctionnalité à ce composant car il est uniquement destiné à gérer les balises iFrame dans les messages.
Ce composant fonctionne-t-il toujours ? Il fonctionnait pour moi par le passé mais a cessé de fonctionner pour une raison quelconque.
Il semble que la dernière mise à jour date d’il y a 3 ans : hnb-ku/discourse-iframe-lightboxes (github.com) Il est donc raisonnable de supposer que quelque chose s’est cassé ?
Impossible de faire fonctionner cela, j’ai suivi le guide à la lettre et ajouté le domaine à la fois au composant de thème et au paramètre du site. Voici ce que j’obtiens :
aucune erreur dans la console.
Je l’utilise avec des aperçus PDF : Inline PDF Previews - #116 by Alon1
Je m’attends à obtenir les flèches d’expansion au-dessus du PDF
Vous avez eu de la chance avant si cela fonctionnait !
Les deux TC utilisent la même API pour décorer un message, donc l’ordre dans lequel vous les installez serait nécessaire. De plus, la source de l’iframe est définie dynamiquement une fois que le PDF a été téléchargé et peut ne pas être immédiatement disponible dans ce TC IFrame Lighboxes.
Les changements que j’ai apportés sont essentiellement :
Rechercher les éléments iframe dans la prochaine boucle d’exécution, afin que l’iframe soit garanti d’être disponible
Attendre que l’iframe se charge afin que vous puissiez récupérer l’URL source