我只是好奇如何以不同的方式做到这一点。现在我已经创建了一行没有分号或新行的代码。我想明确一点,这根本没有任何错误。该代码创建一个由<h1>Example</h1>
. 这包含在一个承诺中,因此我可以访问结果。得到结果后,我使用&&
运算符来避免使用分号。blob url 立即打开,然后在 2000 毫秒后撤销。如果您有解决方案可以缩短此时间或在没有;
新行的情况下以不同方式完成,请通知我:)
new Promise(r=>r(URL.createObjectURL(new Blob(['<h1>Example</h1>'],{type:'text/html'})))).then(u=>{window.open(u)&&setTimeout(t=>URL.revokeObjectURL(u)),2000})
我想明确一点,这是关于语法的。
编辑:
事实证明,感谢@Bergi,这很容易通过 IIFE 实现。使用 IIFE,有点让你倒退。我做了一些编辑。此功能通过以下方式工作:
- 为
<h1>Example</h1>
- 它通过做两件事的 IIFE 运行 URL
- 打开网址
- 为要加载的窗口设置事件侦听器,然后撤消 URL
((u,e=open(u))=>e.onload=_=>URL.revokeObjectURL(u))(URL.createObjectURL(new Blob(['<h1>Example</h1>'],{type:'text/html'})))
编辑(不需要e
):
(u=>open(u).onload=_=>URL.revokeObjectURL(u))(URL.createObjectURL(new Blob(['<h1>Example</h1>'],{type:'text/html'})))