Ajax / Jquery и window.open запускают блокировку всплывающих окон в Google Chrome - PullRequest
0 голосов
/ 05 декабря 2018

Я пытался использовать ajax и jquery в качестве альтернативы window.open, чтобы избежать блокировки всплывающих окон, но безуспешно.

Вот некоторые из альтернатив, которые я пробовал:

1)

$.ajax({
type: "POST",
url: "list.aspx",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
    window.open("edit_page.aspx"); 
},
error: function(msg) {
    alert("error");
}
});

2)

var url = 'page.aspx';

var $a = $('<a>', {
    href: url,
    target: '_blank'
});

$(document.body).append($a);

$a.click();

Наконец, модальный диалог в качестве альтернативы начальной загрузки не позволяет мне загрузить страницу aspx.

Любойпомощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Мне пришлось использовать диалог Bootstrap и iframe для загрузки страницы aspx.

0 голосов
/ 05 декабря 2018

У меня была похожая проблема.Честно говоря, это сложно.Если вы запускаете любую вкладку или всплывающее окно без прямого действия клиента, оно обычно помечается.Я использую это, чтобы открыть страницу:

Попробуйте это:

Позвоните window.open перед вызовом $ .ajax и сохраните его:

var openwindow=window.open(PATH);

При обратном вызове задайте свойство местоположениясохраненной ссылки на окно:

openwindow.location=url;

Вы также можете попробовать создать свое собственное всплывающее окно.

Например:

<style>
 #popup{display:none;}
</style>
<div id='popup'></div>

И вы задаете вопросможет заполнить ваше всплывающее окно и отобразить его.

success: function(msg){
 $('#popup').load('edit_page.aspx');
 $('#popup').show();
},

А затем вы можете стилизовать его и расположить #popup.Также добавьте кнопку закрытия.Будет ли это работать для вас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...