Est-il possible de lancer un modal qui ne possède pas la propriété IsDlg?
-
16-10-2019 - |
Question
Je dois ouvrir une page Web externe, par exemple, http://google.com dans une boîte de dialogue modale. Donc, si je devais faire
SP.UI.ModalDialog.showModalDialog(options);
je reçois une fenêtre modale, cependant, il ajoute le paramètre de chaîne de requête IsDlg = 1. En fait, Google pukes au paramètre qui est ajouté.
La solution
Ce que vous pouvez faire est pop une page d'application dans une boîte de dialogue modale (en utilisant le cadre de dialogue 2010) qui contient un iframe à l'emplacement souhaité. Vous pouvez passer dans l'url de l'iframe devrait apparaître dans le querystring (assurez-vous encodez d'abord, et le décoder dans la page de l'application).
Méfiez-vous qu'en 2010, vous aurez le ruban aussi, donc ce que je l'ai fait pour contourner cela est suivi
Autres conseils
À la suite de la réponse de James, l'option de html
showModalDialog permet vous d'envoyer directement html à la boîte de dialogue rendus au.
Malheureusement, il accepte un objet DOM HTML plutôt que d'une chaîne HTML, afin que nous ayons à faire ce qui suit:
<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>
Aucune page de l'application requise.
Vous pouvez simplement essayer d'utiliser quelque chose comme javascript:OpenPopUpPage('http://google.com')
dans un lien. S'il vous plaît noter que ce code est sensible à la casse.