Je fais un script Greasemonkey et je voudrais ouvrir un nouvel onglet qui n'affichera pas une URL mais du HTML qui fait partie du script. Donc, fondamentalement, je veux faire quelque chose comme ça (qui ne fonctionne évidemment pas):
window.open('<html><head></head><body></body></html>');
or
GM_openInTab('<html><head></head><body></body></html>');
Tous les indices sont les bienvenus!
Tu peux le faire:
var newWindow = window.open();
puis faire
newWindow.document.write("ohai");
Si l'autre réponse vous donne Error: Permission denied to access property "document"
, voir cette question sur la façon de gérer les problèmes de politique d'origine identique, ou celui-ci .
Ou, rapide et sale, utilisez un URI de données:
var html = '<html><head></head><body>ohai</body></html>';
var uri = "data:text/html," + encodeURIComponent(html);
var newWindow = window.open(uri);