2016-06-21 53 views
0

我想用PHP做一些事情,然後窗口應該關閉。Body onload腳本在PHP腳本之前執行

這是代碼:

<?php 
do_this_in_server(); 
do_that(); 
?> 

<html> 
    <head> 
    <script> 
    function realClose() 
    { 
     var win=window.open("","_top","","true"); 
     win.opener=true; 
     win.close(); 
    } 
    </script> 
    </head> 
<body onload="realClose()"> 
</body> 

的JavaScript,因此PHP功能已完成之前執行窗口的閉合。有任何想法嗎?

+1

這些功能是做什麼的?你怎麼知道他們沒有完成? – eol

+1

更好地使用ajax並獲得json響應,然後調用realClose函數 – Kotzilla

+2

在PHP腳本完成之前,不可能執行JS。 PHP完成後,完整的HTML只發送給瀏覽器。 –

回答

1

它是不可能爲JavaScript執行比在同一文件中的PHP早。 我建議你仔細檢查PHP是否真的沒有執行。 (它根本不工作,或者在JavaScript之前執行)。如果您正在通過其他一些PHP腳本進行檢查,請記住它可能會自行延遲。

由於您的代碼並不能爲我們提供實際應該做的事情,因此無法給出更具體的答案。

一個小小的研究會告訴你,如果你嘗試,例如檢查How to ask javascript wait for mysql assign value to php variable?

+0

PHP錯誤 – prgrm

1
"Scripts may close only the windows that were opened by it." 

答案不能關閉通過腳本本身開放的窗口。 但我想給你幾個建議。

  • 使用ajax調用do_that()函數。
+0

它在Internet Explorer和Chrome中工作。不在Mozilla上。 – prgrm

+1

是的你是對的。雖然我不認爲它是一個好主意,最終關閉一個最終用途正在工作的窗口:P –