In diesem Artikel wird beschrieben, wie JS ein neues Fenster öffnet, um zu verhindern, dass es vom Browser blockiert wird. Teilen Sie es für Ihre Referenz. Die spezifische Analyse ist wie folgt:
Das Öffnen eines neuen Fensters mit der herkömmlichen Fenster.open () -Methode wird vom Browser blockiert. Wie können wir JS also ein neues Fenster öffnen lassen, ohne vom Browser blockiert zu werden? Tatsächlich gibt es immer noch Lösungen, hier werden wir analysieren, wie dieses Problem gelöst werden kann
Ich habe in letzter Zeit ein solches Problem gestoßen, daher werde ich Ihnen die Methode zum Auftauchen eines neuen Fensters mitteilen. Jeder ist herzlich eingeladen, ...
Die erste besteht darin, das native JavaScript -Fenster zu verwenden. Open () Methode (in den meisten Fällen wird es durch Browsen blockiert)
Der zweite Typ ist die Simulation der Formulare. Das Prinzip besteht darin, festzustellen, dass die Aktion des Formulars die URL -Adresse ist, die Sie öffnen möchten, und das Ziel auf "_blank" eingestellt ist
Die Codekopie lautet wie folgt: document.getElementById ("msgtxt"). InnerHtml = "<Form ID = 'HiddenLink' action = '"+Shref+"' target = '_ leer'> <eingabe type = 'hidden' name = 'object' value = '"+objvalue+"'> </Form>";
var s = document.getElementById ("HiddenLink");
submit ();
Die Methode zur Einreichung von Scheinformulare kann jedoch auch blockiert werden ...
Der dritte Typ simulierte Hyperlink (<a>) wird geklickt
Wenn eine Taste gedrückt wird, können Sie den Link simulieren, wenn Sie eine neue Registerkarte öffnen möchten, und dann den Link öffnen.
In JQuery wird jedoch A.Click (), A.TRIGGER ('CLICK') usw. nicht dazu führen, dass das Link -Standard -Ereignis ausgeführt wird.
Der folgende Code simuliert den Link -Klick -Ereignis und führt dann das Ereignis aus, bei dem der Link standardmäßig geöffnet wird.
Es ist jedoch erwähnenswert, dass: Für den IE -Browser das Dokument.CreateEvent -Funktion wird nur unter IE9 oder höher unterstützt, sodass der folgende Code in IE9 oder höher ausgeführt werden muss.
Die Codekopie lautet wie folgt: var a = $ ("<a href = 'http: //www.test.com' target = '_ leer'> test </a>") .get (0);
var e = document.createEvent ('Mouseevents');
E.Initevent ('Click', True, True);
a.DispatchEvent (e);
Der vierte Typ: Sprudelner Vorfall mit dem Browser (nachgedruckt)
Die Codekopie lautet wie folgt: Clickopenwin: Funktion (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 (Funktion (e) {
if (returnData) {
A.Attr ("href", returnData);
}anders {
Vorne (ich);
E.Stop ();
}
});
}
me.mouseover (function () {$ (this) .beefore (a) .Appendto (a);});
me.mouseout (function () {a.before ($ (this));});
me.click (function () {
A.attr ("href", "#|");
returnData = f.Apply (this, Argumente);
});
}
1). Sprechen wir zunächst über den endgültigen Effekt, der „A“ verwendet, um die Elemente zu enthalten, die Sie auslösen möchten. Das ursprüngliche Klickereignis kehrt zur Popup-URL zurück. Entsprechend diesem Satz: Kopieren Sie den Code -Code wie folgt: returnData = f.Apply (this, Argumente);
2). Dann werden wir über die Popup-Blockierungsstrategie sprechen. Ich werde nicht über die spezifischen sprechen. Wie auch immer, die Strategie wird "selbst" nicht abfangen.
3). Schließlich wird es synthetisiert. Nach der Verwendung von A, um es einzuschließen, da das Ereignis sprudelt, verwenden Sie normale Klicks, um eine dynamische Linkadresse an A zu generieren, wodurch das ursprüngliche Klickereignis von A ausgelöst wird, und dann wird sie abgeschlossen.
Ich hoffe, dieser Artikel wird für JavaScript -Programme aller hilfreich sein.