亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

?ffnen Sie Berechnungsdokumente mit window.open() und data: scheme
P粉752479467
P粉752479467 2024-04-06 15:06:34
0
1
943

Ich habe eine Webseite, die in einem Browser l?uft, die ein berechnetes HTML-Dokument generiert, das ich in einem neuen Browser-Tab ?ffnen m?chte.

Der einfache und schmutzige Weg ist, Folgendes zu tun:

const w = window.open('', '_blank');
w.document.open();
w.document.write(htmlContents);
w.document.close();

Es ist ganz einfach. Aber das hat einige unangenehme Konsequenzen, die mir nicht gefallen. Das hei?t, die URL des neuen Tabs muss irgendwohin zeigen, aber da das neue Dokument dynamisch berechnet wird, gibt es nichts, was darauf verweisen k?nnte. Wenn ich keine URL angebe, wird die URL meiner Webseite verwendet. Wenn also jemand die Registerkarte mit dem generierten Dokument aktualisiert, verschwindet das Dokument und an seiner Stelle wird eine neue Instanz meiner Webseite geladen. Dies kann Benutzer verwirren. Ich denke, was meinen Anforderungen besser entspricht, ist die Verwendung von Daten-URI. Ich codiere einfach den gesamten Inhalt der Webseite in den URI selbst und verwende dann , um diesen URI zu ?ffnen. Es ist h?sslich, aber semantisch im Einklang mit meinem Ziel: ein in sich geschlossenes Rechendokument, das bei Seitenaktualisierungen nicht versehentlich herausnavigiert werden kann.

Ich habe mir dazu ein meiner Meinung nach sehr einfaches Konzept wie folgt aufgebaut:

const doc = encodeURIComponent('<html><body><p>Hello, world!</p></body></html>');
window.open(`data:text/html;charset=utf-8,${doc}`, '_blank');
window.open()Wenn ich diesen Code ausführe, blinkt ein neues Fenster für einen Frame auf dem Bildschirm und wird dann sofort geschlossen. Es sind keine Fehler aufgetreten.

Was habe ich falsch gemacht?

P粉752479467
P粉752479467

Antworte allen(1)
P粉085689707

顯然所有現(xiàn)代瀏覽器都已有意明確阻止這種數(shù)據(jù) URI 的使用。太棒了。

黑板上的另一個(gè)勾號(hào)是“我需要的非常完美的東西最近被從我們身邊拿走了”。呃。

從好的方面來(lái)說(shuō),這似乎可以更好地完成我想要的一切:

const html = '

Hello, world!

'; const blob = new Blob([html], { type: 'text/html'}); const url = URL.createObjectURL(blob); window.open(url, '_blank');
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage