Comment pourrais-je ouvrir une nouvelle fenêtre en JavaScript et insérer des données HTML au lieu de simplement créer un lien vers un fichier HTML?
Vous pouvez utiliser window.open pour ouvrir une nouvelle fenêtre/onglet (selon les paramètres du navigateur) en javascript.
En utilisant document.write, vous pouvez écrire du contenu HTML dans la fenêtre ouverte.
Je ne vous recommanderais pas d'utiliser document.write
comme le suggèrent d'autres personnes, car si vous ouvrez deux fois cette fenêtre, votre code HTML sera dupliqué deux fois (ou plus).
Utilisez innerHTML à la place
var win = window.open("", "Title", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=200,top="+(screen.height-400)+",left="+(screen.width-840));
win.document.body.innerHTML = "HTML";
Lorsque vous créez une nouvelle fenêtre à l'aide de open
, il renvoie une référence à la nouvelle fenêtre. Vous pouvez utiliser cette référence pour écrire dans la nouvelle fenêtre ouverte via son objet document
.
Voici un exemple:
var newWin = open('url','windowName','height=300,width=300');
newWin.document.write('html to write...');
Vous pouvez ouvrir une nouvelle fenêtre popup en utilisant le code suivant:
var myWindow = window.open("", "newWindow", "width=500,height=700");
//window.open('url','name','specs');
Ensuite, vous pouvez ajouter du HTML en utilisant à la fois myWindow.document.write();
ou myWindow.document.body.innerHTML = "HTML";
Ce que je recommanderai, c’est que vous créez d’abord un nouveau fichier html avec n’importe quel nom . Dans cet exemple, j’utilise
newFile.html
Et assurez-vous d’ajouter tout le contenu de ce fichier, tel que bootstrap cdn ou jquery, désigne tous les liens et scripts. Puis faites une div avec un identifiant ou utilisez votre corps et donnez-lui un id
. dans cet exemple, j'ai donné id="mainBody"
à ma balise newFile.html <body>
<body id="mainBody">
Puis ouvrez ce fichier en utilisant
<script>
var myWindow = window.open("newFile.html", "newWindow", "width=500,height=700");
</script>
Et ajoutez ce que vous voulez ajouter à votre balise body. en utilisant le code suivant
<script>
var myWindow = window.open("newFile.html","newWindow","width=500,height=700");
myWindow.onload = function(){
let content = "<button class='btn btn-primary' onclick='window.print();'>Confirm</button>";
myWindow.document.getElementById('mainBody').innerHTML = content;
}
myWindow.window.close();
</script>
c'est aussi simple que ça.
Vous pouvez également créer une page "example.html" contenant le code HTML souhaité et attribuer à cette page l'URL comme paramètre de window.open
var url = '/example.html';
var myWindow = window.open(url, "", "width=800,height=600");