teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コードを改善

2016/09/09 06:44

投稿

guest1213
guest1213

スコア306

answer CHANGED
@@ -14,11 +14,13 @@
14
14
  <script>
15
15
  (function() {
16
16
  document.getElementById("b1").addEventListener("click", function() {
17
+ // ブロックされないようにclickハンドラ内でオープンしとく
18
+ var previewWindow = window.open("", "preview");
17
19
  var xhr = new XMLHttpRequest();
18
20
  xhr.onload = function() {
19
21
  var url = URL.createObjectURL(this.response);
20
- // 非同期だからブロックされるけども。。
22
+ // オープンしといた別Windowで表示
21
- var previewWindow = window.open(url, "preview");
23
+ previewWindow.location.href = url;
22
24
  // 埋め込んじゃうというのも
23
25
  document.getElementById("d1").innerHTML =
24
26
  '<embed type="application/pdf" src="' + url + '"></embed>';