E 'possibile lanciare un modale che non ha la proprietà IsDlg?
-
16-10-2019 - |
Domanda
Ho bisogno di aprire una pagina web esterna, ad esempio, http://google.com in una finestra di dialogo modale. Quindi, se dovessi fare
SP.UI.ModalDialog.showModalDialog(options);
ottengo una finestra modale, tuttavia, aggiunge il parametro della stringa = 1 di query IsDlg. In realtà, Google pukes al parametro che viene aggiunto.
Soluzione
Che cosa si potrebbe fare è pop-up una pagina di applicazione in una finestra di dialogo modale (utilizzando il framework finestra 2010) che contiene un iframe nella posizione desiderata. Si potrebbe passare l'URL iframe dovrebbe mostrare nel querystring (assicuratevi di codificare per primo, e decodificare nella pagina dell'applicazione).
Attenzione che nel 2010 avrai il nastro e, quindi quello che ho fatto per aggirare questo è seguire questo post del blog per includere un altro parametro querystring quando si chiama la pagina della tua applicazione per nascondere il nastro.
Altri suggerimenti
A seguito di risposta di James, l'opzione html
di showModalDialog permette di inviare direttamente html da rendere nella finestra di dialogo.
Purtroppo accetta un oggetto HTML DOM piuttosto che una stringa HTML, quindi avremmo dovuto fare quanto segue:
<script language="javascript">
function popUp() {
var frame = document.createElement('iframe');
frame.setAttribute('src', 'http://tsstsst.com');
frame.setAttribute('width', '99%');
frame.setAttribute('height', '98%');
var options = {
title: 'TssTssT',
width: 950,
height: 600,
html: frame
};
SP.UI.ModalDialog.showModalDialog(options);
}
</script>
<button OnClick="popUp();return false;">View Stu's blog!</button>
No pagina dell'applicazione richiesta.
Si può semplicemente provare ad usare qualcosa come javascript:OpenPopUpPage('http://google.com')
in un collegamento. Si prega di notare che questo codice è case-sensitive.