Widget:ExternalDialog
De Encyclopédie-de-L'AFN_1830-1962
<script>
// Création du WindowManager une seule fois
if (typeof window.externalWM === 'undefined') {
window.externalWM = new OO.ui.WindowManager(); $(document.body).append(window.externalWM.$element);
}
function ExternalIframeDialog(config) {
ExternalIframeDialog.super.call(this, config);
} OO.inheritClass(ExternalIframeDialog, OO.ui.Dialog);
ExternalIframeDialog.static.name = 'externalIframe'; ExternalIframeDialog.prototype.initialize = function () {
ExternalIframeDialog.super.prototype.initialize.call(this);
this.iframe = $('<iframe>')
.attr({
frameborder: 0,
allowfullscreen: true
})
.css({ width: '100%', height: '100%', border: 'none' });
this.$body.append(this.iframe);
};
ExternalIframeDialog.prototype.getBodyHeight = function () {
return this.config.height || 700;
};
// Fonction globale d'ouverture (plus fiable) window.openExternalOOUIDialog = function (url, title = 'Page externe', width = 1100, height = 750) {
const dialog = new ExternalIframeDialog({
size: 'large'
});
dialog.iframe.attr('src', url);
dialog.setTitle(title);
window.externalWM.addWindows([dialog]);
window.externalWM.openWindow(dialog, {
width: width,
height: height
});
// Rendre la fenêtre déplaçable
setTimeout(() => {
dialog.$element.draggable({
handle: '.oo-ui-window-head',
containment: 'window'
});
}, 300);
}; </script>
<style> .oo-ui-windowManager-modal .oo-ui-window-frame {
background-color: rgba(255, 255, 255, 0.96) !important; border-radius: 8px; box-shadow: 0 8px 25px rgba(0,0,0,0.5);
} .oo-ui-windowManager-overlay {
background-color: rgba(0, 0, 0, 0.65) !important;
} </style>