3

对不起,奇怪的标题,我不知道如何表达这个问题。基本上,我想知道是否可以打开一个新窗口并从前端用 HTML 填充它,而不是编写实际路由、数据库调用等。(是的,超级懒惰。)沿着这些思路思考......

var html = '<!DOCTYPE html><body><h1>Y HALO THAR</h1></body>'

window.open(html);

我只是在这里许愿吗?这甚至可能吗?

4

3 回答 3

5

编辑此答案不再有效,因为实施了阻止某些URI的安全功能。data:

请参阅打开新选项卡/窗口并向其写入内容?工作答案

可以选择使用dataurl ...

window.open('data:text/html,<!DOCTYPE html><body><h1>Y HALO THAR</h1></body>');

以下 Web 浏览器当前支持数据 URI:

  • Firefox 和所有使用 Mozilla Foundation 的 Gecko 渲染引擎的浏览器
  • Safari、Chrome 和其他基于 WebKit 的浏览器
  • 歌剧
  • 征服者
  • Internet Explorer 8+(有某些限制)
于 2013-01-23T16:12:28.747 回答
5

您需要做的第一件事是让弹出窗口有一个变量 -

var popup = window.open('blankPage.html');
var html = '<!DOCTYPE html><body><h1>Y HALO THAR</h1></body>';

popup.document.write(html);
于 2013-01-23T16:13:00.710 回答
3

建议执行以下操作

window.open('data:text/html,<!DOCTYPE html><body><h1>Y HALO THAR</h1></body>');

由于“数据:”津贴的折旧,不再适用于 Chrome。

https://developers.google.com/web/updates/2017/03/chrome-58-deprecations#remove_content-initiated_top_frame_navigations_to_data_urls

如果您以前使用过这个,您的代码现在将打开一个空白窗口。

于 2017-10-12T17:19:12.577 回答