Почему я не могу открыть новое окно для моего обратного вызова jquery ajax? - PullRequest
2 голосов
/ 07 мая 2010

, чтобы показать мою проблему в паре примеров ...

ЭТО РАБОТАЕТ

$.post("SomePage.aspx", { name : "value" },
      function (data) {
         alert(data);
      }, "text");

ЭТО НЕ РАБОТАЕТ

$.post("SomePage.aspx", { name : "value" },
          function (data) {
             window.open("http://www.google.com");
          }, "text");

В первом примере меня предупреждают о том, чего я ожидаю. Во втором примере ничего не происходит. Окна не открыты. Если я добавляю оповещение или что-то до или после вызова window.open, оповещение работает нормально, но окно не открывается. Если я полностью добавлю window.open после метода $ .post, окно откроется нормально (конечно, это мне совсем не поможет).

Мне интересно, почему я не могу открыть окно в обратном вызове. Что мне нужно сделать, чтобы открыть окно? Я хотел бы открыть окно, чтобы показать некоторые причудливые результаты.

Любая помощь приветствуется, спасибо.

Ответы [ 2 ]

3 голосов
/ 07 мая 2010

должно работать?

попробуйте с именем окна?

window.open("http://www.google.com", "MyWindow");

согласно этому посту

http://www.javascript -coder.com / оконного всплывающее окно / JavaScript-окно-open.phtml

Синтаксис метода window.open приводится ниже: открытый (URL, windowName [, windowFeatures])

2-й параметр не является обязательным (конечно, в javascript все необязательно), может быть, что-то странное происходит в обратном вызове без него?

также, возможно, он открывается в новой вкладке или за текущим окном?

var x = window.open("http://www.google.com", "MyWindow");
x.focus();
2 голосов
/ 04 ноября 2014

Это мой пример решения:

$.ajax({
    type: "GET",
    async: false,
    . . .
    url: "MyService.aspx/ConstructUrl",
    success: function(url) {
        window.open(url); 
})

добавлена ​​дополнительная опция ajax "async: false", и это вызвало открытие URL в новой вкладке. Хорошо работает в Chrome и Firefox.

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