48

私はGreasemonkeyスクリプトを作成していて、URLを表示せず、スクリプトの一部であるHTMLを表示する新しいタブを開きたいと思います。だから基本的に私はこのようなことをしたいです(これは明らかに機能していません):

window.open('<html><head></head><body></body></html>');
or
GM_openInTab('<html><head></head><body></body></html>');

ヒントは大歓迎です!

4

4 に答える 4

90

あなたはこれを行うことができます:

var newWindow = window.open();

そしてします

newWindow.document.write("ohai");

于 2012-05-13T16:42:37.053 に答える
16

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);
于 2016-01-09T14:50:22.653 に答える
0

誰かがこれを必要とする場合に備えて、私はこれをここに置いています。私はこの問題を解決する方法を作りました、私はあなたがハッシュで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>

于 2022-01-20T20:58:22.160 に答える
-2

.htmlローカルに保存されたファイルがあるとしましょう。あなたができることはこれです:

var newWindow = window.open();
newWindow.document.location.href = "/path/to/html/file";
于 2019-04-16T15:27:02.893 に答える