2012-10-15 46 views
1

下面是我的代碼打開按鈕到一個新的頁面,但點擊功能有更多的複雜性。這裏也發生後處理,這使得window.open以彈出塊的形式出現。Window.open使頁面成爲一個彈出塊

我試圖刪除帖子功能,並嘗試和新的頁面完美工作。有沒有人可以幫忙解決這個問題。當不通過用戶動作調用

$('#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"); 
     } 
    }); 
+0

什麼導致該塊?您的瀏覽器或工具欄? – DaveHogan

+0

瀏覽器只創建塊。如果我點擊允許彈出窗口,然後沒有問題,但這本身不應該發生。 – Khirthan

+0

好的,我會從以前的帖子中分享一些有價值的知識:如果在用戶操作發生時檢測到「open popup」命令未執行,則瀏覽器將阻止彈出窗口。用戶點擊後,您似乎正在進行ajax調用。這可能是原因。如果您在沒有任何條件的情況下將彈出代碼作爲第一行'click()'處理程序,您可以嘗試查看是否打開彈出窗口。雖然我想不出解決方案! – Prasanth

回答

1

彈出窗口被阻止。您的window.open不在用戶操作中,而是在POST成功回調中。

你應該讓post同步,並從POST成功之外執行window.open(未經測試,但聽起來合乎邏輯),或者先打開彈出框並稍後填寫它。

+0

幾乎想給-1一個建議同步回發。這是要求更多的麻煩。 – epascarello

+0

我同意。理想情況下,我會避免整個問題,而不依賴於彈出窗口。 –

相關問題