この記事では、JSがブラウザによってブロックされないようにする新しいウィンドウを開く方法について説明します。参照のためにそれを共有してください。特定の分析は次のとおりです。
従来のWindow.open()メソッドを使用して新しいウィンドウを開くことは、ブラウザによってブロックされます。それでは、ブラウザによってブロックされずにJSを新しいウィンドウを開くにはどうすればよいですか?実際、まだ解決策があります。ここでは、この問題を解決する方法を分析します
私は最近そのような問題に遭遇したので、新しいウィンドウをポップアップする方法をあなたと共有します。誰もが追加できます...
1つ目は、ネイティブJavaScript window.open()メソッドを使用することです(ほとんどの場合、ブラウジングによってブロックされます)
2番目のタイプは、フォームの提出をシミュレートすることです。原則は、フォームのアクションが開く必要のあるURLアドレスであり、ターゲットが「_blank」に設定されていることを指定することです。
コードコピーは次のとおりです。Document.GetElementByID( "MSGTXT")。innerhtml = "<form id = 'hiddenlink' action = '"+shref+"'ターゲット= '_ blank'> <入力タイプ= 'オブジェクト値'値 '値'"+objvalue+"'> </form>";
var s = document.getElementById( "hiddenlink");
S.Submit();
ただし、模擬フォームの提出方法もブロックされる場合があります...
3番目のタイプ、シミュレートされたハイパーリンク(<a>)がクリックされます
ボタンが押されたら、新しいタブを開きたい場合は、押されているリンクをシミュレーションしてからリンクを開くことができます。
ただし、jQueryでは、a.click()、a.trigger( 'click')などを使用して、リンクのデフォルトイベントが実行されません。
次のコードは、リンククリックイベントをシミュレートし、デフォルトでリンクが開かれるイベントを実行します。
ただし、IEブラウザの場合、document.createevent関数はIE9以上でのみサポートされているため、次のコードをIE9以下で実行する必要があります。
コードコピーは次のとおりです。vara = $( "<a href = 'http://www.test.com'ターゲット= '_ blank'> test </a>").get(0);
var e = document.createevent( 'mousevents');
E.IniteVent( 'Click'、true、true);
a.dispatchevent(e);
4番目のタイプ:ブラウザを使用したバブリングインシデント(再版)
コードコピーは次のとおりです。ClickopenWin:function(f){
var datakey = "clickopenwin.datakey"
var me = $(this);
var a = me.data(datakey);
var returnData = null;
if(!a){
a = $( "");
me.data(datakey、a);
A.Click(function(e){
if(returnData){
a.attr( "href"、returndata);
}それ以外 {
A.before(me);
e.Stop();
}
});
}
me.mouseover(function(){$(this).before(a).appendto(a);});
me.mouseout(function(){a.before($(this));});
me.click(function(){
a.attr( "href"、 "#|");
returnData = f.Apply(this、arguments);
});
}
1)。まず、「A」を使用してポップアップウィンドウをトリガーする要素を含めることです。元のクリックイベントはポップアップURLに戻ります。この文に対応する:コードコードを次のようにコピーします:returnData = f.Apply(this、arguments);
2)。次に、ポップアップブロッキング戦略について説明します。特定のものについては話しません。とにかく、戦略は「A」自体を傍受することはありません。
3)。最後に、合成されます。 Aを使用してそれを含めると、イベントがバブルになり、通常のクリックを使用してAへの動的なリンクアドレスを生成し、Aの元のクリックイベントをトリガーしてから完了します。
この記事がみんなのJavaScriptプログラミングに役立つことを願っています。