私はGreasemonkeyスクリプトを作成していて、URLを表示せず、スクリプトの一部であるHTMLを表示する新しいタブを開きたいと思います。だから基本的に私はこのようなことをしたいです(これは明らかに機能していません):
window.open('<html><head></head><body></body></html>');
or
GM_openInTab('<html><head></head><body></body></html>');
ヒントは大歓迎です!
私はGreasemonkeyスクリプトを作成していて、URLを表示せず、スクリプトの一部であるHTMLを表示する新しいタブを開きたいと思います。だから基本的に私はこのようなことをしたいです(これは明らかに機能していません):
window.open('<html><head></head><body></body></html>');
or
GM_openInTab('<html><head></head><body></body></html>');
ヒントは大歓迎です!
あなたはこれを行うことができます:
var newWindow = window.open();
そしてします
newWindow.document.write("ohai");
2021年4月編集:この回答は現在廃止されています。ChromeはトップウィンドウへのデータURIの読み込みを禁止しており、Firefoxではiframeソリューションが機能しません。
元の回答:他の回答で得られる場合は、同一生成元ポリシーの問題を処理する方法についてのこの質問、またはこれError: Permission denied to access property "document"
を参照してください。
または、すばやく汚い、データURIを使用します。
var html = '<html><head></head><body>ohai</body></html>';
var uri = "data:text/html," + encodeURIComponent(html);
var newWindow = window.open(uri);
誰かがこれを必要とする場合に備えて、私はこれをここに置いています。私はこの問題を解決する方法を作りました、私はあなたがハッシュでhtmlを与えることができる小さなウェブサイト( https://tampermonkeykostyl.dacoconutnut.repl.co )を作成しました!例:(実際に新しいタブで開くには、URLを中クリックする必要がある場合があります)
// get url
var el = document.getElementById("url");
// make html
var HTML = `
<h1>hi</h1>
if you can see this then cool <br>
<i>this should be italic</i> and <b>this should be bold</b>
`;
// insert html after the link to demonstrate
document.body.insertAdjacentHTML("beforeend", HTML); // https://stackoverflow.com/a/51432177/14227520
// set url href
el.href = "https://tampermonkeykostyl.dacoconutnut.repl.co/#" + encodeURI(HTML);
// make it open in new tab
el.target = "_blank";
<a id="url">Click here to display following HTML in a link (see js):</a>
.html
ローカルに保存されたファイルがあるとしましょう。あなたができることはこれです:
var newWindow = window.open();
newWindow.document.location.href = "/path/to/html/file";