下面是我将按钮打开到新页面的代码,但是单击功能更加复杂。这里也发生了后处理,这使得 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/