首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >window.open createObjectURL

window.open createObjectURL
EN

Stack Overflow用户
提问于 2017-03-20 15:50:42
回答 1查看 682关注 0票数 2

我正在尝试一些新的API,并被困在这个问题上。

当我尝试用createObjectURL打开window.open生成的URI时,它什么也不做。但是它在location.assign上运行得很好。

我在网上找不到任何可以理解这种行为的资源。

它似乎只会影响Chrome。

以下是代码:

代码语言:javascript
复制
const DATA = [
  '<!DOCTYPE html>',
  '<html>',
    '<head>',
      '<meta charset="utf-8">',
      '<title>Hoy!</title>',
    '</head>',
    '<body>',
      '<h1>Hoy!</h1>',
    '</body>',
  '</html>'
].join('');

const TEXT_ENCODER = new TextEncoder();
const ARRAY_BUFFER = TEXT_ENCODER.encode(DATA);

const BLOB = new Blob([ARRAY_BUFFER], {
  type: 'text/html'
});

const DATA_URI = window.URL.createObjectURL(BLOB);

document.querySelector('#button').addEventListener('click', function createPage() {
  // doesn't work, don't know why
  window.open(DATA_URI, '_blank', '');

  // works fine
  // location.assign(DATA_URI);
});

下面是一个JSFiddle:jsfiddle.net/gibatronic/f97cpweh

EN

回答 1

Stack Overflow用户

发布于 2022-05-25 10:29:05

这在Chrome中是随机的,显然取决于文件的内容。与小邮编工作良好,与大邮编,不下载任何东西。

使用location.assign解决了这个问题

注意:将“设置-安全性”设置为最低级别并不能解决问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42908128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档