2013-06-13 202 views
0

基本上有一個callto函數和一個計時器。計時器通過Javascript倒計時顯示,同時還有一個PHP重定向,它的設置與Javascript倒計時的長度相同。但是,window.location callto函數正在阻止PHP頭重定向工作。有人可以告訴我爲什麼嗎?Javascript「window.location」停止PHP重定向

的JavaScript window.location的功能(位於身體後,由於它阻止它下面的代碼被處理:

<? 
echo" 
<script type='text/javascript'> 
    window.location='callto:".$to."'; 
</script>"; 
?> 

PHP的報頭重定向(html標籤以上):

<?php 

header("refresh:5;url=wherever.php"); 

?> 

如果我刪除window.location函數重定向的作品。

+2

我覺得你很困惑。你是否希望頁面重定向到wherever.php或callto:?如果兩者都在5秒後發生,那麼這是一場比賽,首先到達哪裏;只是包括你想要的。此外,您爲javascript「函數」提供的示例不是函數,它是立即重定向。你將它描述爲在計時器倒計時之後被調用,但實際上它只是立即改變位置的指令。你要哪個? – moopet

+0

這是一個觸摸屏接收,客戶選擇一個部門打電話。我不確定實際呼叫系統的設置,但是window.location ='callto:...'不會進入不同的頁面,它只是連接到呼叫系統,該呼叫系統創建對所選部門的呼叫。它將保持在同一頁面上。但是,這導致PHP重定向不起作用 - 重定向需要阻止它被卡在「通話中」屏幕上。我希望這可以清除它 – DorianHuxley

回答

2

你應該重定向只是與JavaScript,不要重定向與PHP。爲什麼做你的PHP重定向已經用javascript了嗎?

爲了延緩重定向你應該使用JavaScript setTimetout()函數,如:

setTimeout(function() {document.location = 'detination';}, time_in_miliseconds); 
2
header("refresh:5;url=wherever.php"); 

這不是一個有效的重定向頭!

header('Location: http://example.com/sub/script.php'); 

這是一個有效的重定向頭!

使腳本等待,只要你想,你就需要在其上添加一個睡眠:

sleep(5); 
header('Location: http://example.com/sub/script.php'); 
+0

不幸的是,這不包括它的時間方面。 – DorianHuxley

+0

是的,因爲頭部重定向儘快完成,因爲頭部到達客戶端 - 沒有頭部重定向的時機。爲了計算重定向,傳遞一個帶有Meta重定向的HTML頁面... –

+0

是的,您的超時時間點是公平的,但您應該糾正問題,因爲很多人可能會看到該問題並將其作爲正確的答案 – Jonathan

0

而是一個JavaScript重定向你應該渲染簡單的HTML和HREF的呼叫鏈路= 「撥電至:...」。 如果您想在沒有用戶交互的情況下顯示呼叫屏幕,則只需在鏈接上觸發點擊事件即可。