В этой статье описывается, как JS открывает новое окно, чтобы предотвратить его заблокированным браузером. Поделитесь этим для вашей ссылки. Конкретный анализ заключается в следующем:
Открытие нового окна с использованием метода традиционного Window.open () будет заблокирован браузером. Итак, как мы можем заставить JS открыть новое окно, не будучи заблокированным браузером? На самом деле, есть все еще решения, здесь мы проанализируем, как решить эту проблему
В последнее время я столкнулся с такой проблемой, поэтому я поделюсь с вами методом выявления нового окна. Все могут добавить ...
Первый - использовать нативное метод javaScript.
Второй тип - имитировать подачу формы. Принцип состоит в том, чтобы указать, что действие формы - это адрес URL -адреса, который вы хотите открыть, и цель установлен на «_blank»
Кода кода выглядит следующим образом: document.getElementById ("msgtxt"). Innerhtml = "<form id = 'hiddenlink' action = '"+shref+"' target = '_ blank'> <input type = 'hidden' name = 'object' value = '"+objvalue+"> </form>";
var s = document.getElementbyId ("hiddenlink");
s.submit ();
Однако метод подчинения макета также может быть заблокирован ...
Третий тип, смоделированная гиперссылка (<a>), нажимается
Когда нажата кнопка, если вы хотите открыть новую вкладку, вы можете имитировать нажащую ссылку, а затем открыть ссылку.
Однако в jQuery, используя a.click (), a.trigger ('click') и так далее не приведет к выполнению события по умолчанию ссылки.
Следующий код имитирует событие ссылки на щелчок, а затем выполняет событие, где ссылка открывается по умолчанию.
Тем не менее, стоит отметить, что: для браузера IE функция Document.Createevent поддерживается только в IE9 или выше, поэтому следующий код должен выполняться в IE9 или выше.
Кода кода выглядит следующим образом: var a = $ ("<a href = 'http: //www.test.com' target = '_ blank'> test </a>") .get (0);
var e = document.createevent ('mouseevents');
e.initevent ('Щелкни, верно, верно);
A.DispatchEvent (E);
Четвертый тип: инцидент с пузырьком с использованием браузера (перепечатано)
Кода кода следующая: clickopenwin: function (f) {
var Datakey = "clickopenwin.datakey"
var me = $ (это);
var a = me.data (dataquey);
var returndata = null;
if (! a) {
A = $ ("");
me.data (datey, a);
A.click (function (e) {
if (returndata) {
A.attr ("href", returndata);
}еще {
A.fefore (me);
e.stop ();
}
});
}
me.mouseover (function () {$ (this) .fore (a) .appendto (a);});
me.mouseout (function () {a.before ($ (this));});
me.click (function () {
A.attr ("href", "#|");
returnData = f.apply (это, аргументы);
});
}
1). Во-первых, давайте поговорим о последнем эффекте, который должен использовать «A», чтобы содержать элементы, которые вы хотите запустить всплывающее окно. Оригинальное событие Click вернется к всплывающему URL. Соответствует этому предложению: скопируйте код кода следующим образом: returnData = f.apply (это, аргументы);
2). Тогда мы поговорим о стратегии блокировки всплывающего окна. Я не буду говорить о конкретных. Во всяком случае, стратегия не будет перехватывать саму «а».
3). Наконец, это синтезируется. После использования A для включения, поскольку событие будет пузыриться, используйте обычные клики, чтобы сгенерировать динамический адрес ссылки на A, запуская исходное событие Click A, а затем его завершено.
Я надеюсь, что эта статья будет полезна для каждого программирования JavaScript.