【问题标题】:window.open() opens a blank screen in chromewindow.open() 在 chrome 中打开一个空白屏幕
【发布时间】:2018-01-28 10:38:00
【问题描述】:

我在 Firefox 中检查了相同的代码,它运行良好。事实上,这在几周前就在 Chrome 中有效,但现在我只是得到一个空白屏幕。

代码如下:

该函数在按钮单击时触发。

function saving() {
  var saveURL = canvas.toDataURL(); 
  window.open(saveURL, "_blank", "location=0, menubar=0");
}

【问题讨论】:

  • 你能提供一个minimal reproducible example 吗?你有一些广告拦截插件吗?
  • 是的,我有一个广告拦截插件,但我在检查时禁用了它,所以这似乎不是问题。

标签: javascript google-chrome html5-canvas window.open todataurl


【解决方案1】:

虽然在 Chrome 中无法再执行此操作,但有一些变通方法,例如打开一个空白文档并对其进行写入。

var win = window.open();
win.document.write("<img src='"+canvas.toDataURL()+"'/>");

【讨论】:

    【解决方案2】:

    这是因为 Chrome 最近发生了变化:

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

    出于安全原因,您不能再以这种方式直接打开数据 URL。

    请改用@Savoo here 在另一个答案中提出的解决方法,或者使用download anchor 并通过JavaScript 点击它。

    【讨论】:

      猜你喜欢
      • 2021-06-12
      • 1970-01-01
      • 2018-06-10
      • 2017-09-29
      • 1970-01-01
      • 2020-04-17
      • 2019-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多