window.openはブラウザによって解決案をブロックされます.

1000 ワード

問題の説明
最近やったプロジェクトでは、zoomを使っています.先生は授業開始ボタンをクリックして直接に生放送室に入ることができます.
原因分析
ブラウザが、ユーザ操作以外で発生した新しいポップアップウィンドウを検出すると、それをブロックします.これはおそらく広告ではないとブラウザが考えていますので、ユーザーが見たいページではありません.
ソリューション
方案一:aラベルを使って代替する.
function newWin(url, id) {
              var a = document.createElement(‘a‘);
              a.setAttribute(‘href‘, url);
              a.setAttribute(‘target‘, ‘_blank‘);
              a.setAttribute(‘id‘, id);
              //       
              if(!document.getElementById(id)) {                     
                  document.body.appendChild(a);
              }
              a.click();
  }
safariブラウザで自分で測ってみたら、もう止められませんでした.しかし、火狐ブラウザでは依然として阻止されています.
方案の2:〓〓〓は先に窓を弾いて、それからリダイレクトします(最良の方案)
まずユーザーがクリックしてページを開きます.(ユーザーがクリックしてトリガする行為でなければなりません.)その後、ページをリダイレクトします.
//        
this.newTab = window.open('about:blank'); `

//   start_url     
this.newTab.location.href = start_url
Safariとファイアフォックスのブラウザで自分で測っても止められませんでした.