2014-02-15 114 views
0

當jQuery函數嘗試在Firefox中打開新頁面時,消息「firefox阻止該站點打開彈出窗口呈現窗口「。據我所知,基於Is window,open() impossible in firefoxLinks to local page do not work這是一個本地問題,只發生,因爲我試圖從「本地主機」訪問我的服務器中的文件。但是,當這個網站真的有效時,其他人就不會因爲沒有訪問他們自己的服務器而出現同樣的問題。這種解釋是否有意義?或者我錯了,我必須處理這個問題?順便說一下,在本地解決這個問題很容易,因爲我只是改變了Firefox的偏好。我的擔心與訪問我網站的其他人有關。Window.open(「about:blank」)=> firefox阻止該站點打開彈出窗口

供參考,這是我的代碼:

<?php 
$theUsernameDaniel = "danielcajueiro"; 
$theUsernameMarcelo = "marcelopapini"; 
?> 


<html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>ControllingHiperlinks</title> 
     <script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script> 


     <script> 

      $(document).ready(function() { 
       $("a.peoplePage").click(function(event) { 
        event.preventDefault(); 
        var theUsername = $(this).data("username"); 
      //   alert(theUsername); 
      //   event.preventDefault(); 
        $.post('callmpeoplepage.php', {theUsername: theUsername}, function(data) { 
         var thePeoplePage = window.open("about:blank"); 
         thePeoplePage.document.write(data); 
        }); 

       }); 
      }); 
     </script>   
    </head> 
    <body> 
     <a class="peoplePage" data-username="<?php echo $theUsernameDaniel ?>" href=""> Daniel Cajueiro</a> 
     <a class="peoplePage" data-username="<?php echo $theUsernameMarcelo ?>" href="">Marcelo Cajueiro</a> 


    </body> 
</html> 

callmpeoplepage.php是

<?php 
$theUsername = $_POST['theUsername']; 
echo $theUsername; 

?> 
+0

觸發window.open的操作是什麼? –

+0

@ Collin-Grady請參閱我的更新。 – DanielTheRocketMan

回答

1

你不能打開一個彈出除了響應直接用戶操作。由於您延遲了window.open,直到回覆完成,它不再直接響應用戶的點擊,因此彈出窗口阻止程序將停止它。

這會發生在每個人身上,而且你無法改變行爲。您可以在提交帖子之前嘗試打開窗口,並且只在帖子返回時填充該窗口 - 只需將window.open一行向上移動到$.post

相關問題