javascript - Window.open使页面变成弹出 block

标签 javascript jquery popupwindow window.open

下面是我将按钮打开到新页面的代码,但是单击功能更加复杂。这里也发生了后处理,这使得 window.open 成为弹出 block 。

我尝试删除帖子功能并尝试,新页面完美运行。有人可以帮忙解决这个问题吗?

$('#catalog_demo_button a').click(function(e) {         
        var curEmailId = $('#field-email').val();           
        var validemail = validateEmail(curEmailId);
        if (validemail) 
        {   
        RSUI.util.setCookie("curEmailIdsc", curEmailId);
        $.post($("#targetform").val(), 
        {
            email : $('#field-email').val(),
            demo_lang : $('#selectedLang').val(),
            cis_name : $("#cis_name").val(),
            website : $("#website").val(),
            form_type : "demo",
            demo_type : $("#form_type").val(),
            form_url : $("#form_url").val(),
            cid : $.trim(RSUI.util.getCookie('affiliate'))
        },function(data) 
        {
            if (data != "")
            {
                data = eval("("+data+")");
                if (data[0].cisFlag == "true")                                  
                {                           
                    s.events="event19";
                    s.t();
                    delete s.events;
                    s.sendFormEvent('s', s.pageName, "Demo Email Form");
                    adconionConversionCall();   



                    var demolangid = $("[name=language_code]").val();
                    URL= 'url'+demolangid; 
                        if(demolangid == 'ENG' || demolangid == 'ESC' || demolangid == 'ESP' || demolangid == 'DEU' || demolangid == 'FRA' || demolangid == 'ITA' || demolangid == 'SVE')   
                            $('#demo').overlay().load();
                        else
                            window.open(URL,'_blank')
                            $("#demoform a.close").click();
                    }
                else {
                    s.sendFormEvent('e', s.pageName, "Demo Email Form", "Email Submission Failed");
                }
            }   
        }, "");
    }
        else 
        {
            $("#field-email").val(errorEmailText);
            $('#field-email').css('border', '1px solid red');
            s.sendFormEvent('e', s.pageName, "Demo Email Form", "field-email");
        }
    });

最佳答案

当用户操作未调用弹出窗口时,弹出窗口将被阻止。您的 window.open 不在用户操作中,而是在 POST 成功回调中。

您应该使帖子同步并从 POST 成功之外执行 window.open(未经测试,但听起来合乎逻辑),或者首先打开弹出窗口并稍后填写。

关于javascript - Window.open使页面变成弹出 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12896519/

相关文章:

来自oncreate的android弹出窗口调用

javascript - 如何在同一个弹窗中打开不同的内容

javascript - 如何使用:not() selector inclusive of parent:first-child element

javascript - Chrome 扩展程序 - 如果我的条件为真,弹出窗口将自动打开

jquery - 使用 jQuery 选择不包含指定类的元素?

javascript - 使用 jQuery 生成配置文件预览

JavaScript 警报弹出框未被调用

javascript - 路由器应该负责网络请求吗? ( Backbone .js)

javascript - 将 JSON 与 Dygraph 和日期时间结合使用

javascript - 其他页面上的 PhoneGap URL 方案不起作用