javascript - alternate method for window.open - Stack Overflow

I have a js function, when I give async as false it opens as newwindow,but when i give async as true i

  • I have a js function, when I give async as false it opens as new window,
  • but when i give async as true its showing as pop up
  • I need to make the code as async as true, but it should open as new window not as pop up
  • can you guys tell me how to Make a asynchronous request so that the new window willnot load as a popup.
  • is there any alternate method for window.open
  • providing my code below

        //
        debugger;
        Ext.Ajax.request({
            async: false,
            url: sports.util.Utils.getContextPath() + '/tabClicks.do',
    
  • I have a js function, when I give async as false it opens as new window,
  • but when i give async as true its showing as pop up
  • I need to make the code as async as true, but it should open as new window not as pop up
  • can you guys tell me how to Make a asynchronous request so that the new window willnot load as a popup.
  • is there any alternate method for window.open
  • providing my code below

        //
        debugger;
        Ext.Ajax.request({
            async: false,
            url: sports.util.Utils.getContextPath() + '/tabClicks.do',
    
Share Improve this question edited Sep 18, 2015 at 14:34 asked Sep 17, 2015 at 16:16 user5318938user5318938 6
  • What's the difference between a pop up and a new window? – Barmar Commented Sep 17, 2015 at 16:21
  • Are you talking about whether the popup blocker plains about it? – Barmar Commented Sep 17, 2015 at 16:22
  • stackoverflow./questions/2572333/… - I think you may be referring to the window without the toolbar as a 'popout', you have little control over this with JavaScript in chrome. – MrBizle Commented Sep 17, 2015 at 16:27
  • You can open the window in the original event and relocate it when you're ready. – Halcyon Commented Sep 17, 2015 at 16:28
  • @barmar yes i am talking about popup plaints – user5318938 Commented Sep 17, 2015 at 16:47
 |  Show 1 more ment

3 Answers 3

Reset to default 1

Your code is a little bit weird so it's hard to make the adjustment properly but this is gist of it:

showNewWindow: function(menu) {
    var me = this,
        newWindowId = sports.util.Utils.randomString(12);

    //
    // Make a synchronous request so that the new window will
    // not load as a popup.
    //
    debugger;
    var popup = sports.util.Utils.openNewWindow('', 'menu', {}, null, null, newWindowId);
    Ext.Ajax.request({
        async: false,
        url: sports.util.Utils.getContextPath() + '/tabClicks.do',
        params: {
            oldWindowId: sports.util.Utils.getWindowName(),
            newWindowId: newWindowId
        },
        success: function() {
            popup.location.href = "/desktop/main";
        },
        scope: me
    });
},

Popup blockers try to tell when a window is being opened in direct response to a user action or spontaneously by the application. The way they probably do this is by checking whether the function that called window.open() was run in response to a user-triggered event like a mouse click.

When you perform a synchronous AJAX request, the function that was triggered by the mouse click is still running when the response arrives and the success function calls window.open. So it's considered to be a user-requested window, not a popup.

When you use asynchronous AJAX, the click handler is no longer running when the success function runs. The asynchronous call to window.open is considered spontaneous by the browser, so it blocks it.

I don't think there's any way around this, because anything you could do could also be used by everyone else to get around popup blockers, and they would be useless.

function openNewWin(name) {
      $.ajax({
          async: false,
          type: 'POST',
          url: 'your url',
          success: function () {
               window.open(name);
          },
          async: false
      });
  }

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745673255a4639534.html

相关推荐

  • javascript - alternate method for window.open - Stack Overflow

    I have a js function, when I give async as false it opens as newwindow,but when i give async as true i

    6小时前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信