下面的JavaScript代碼有兩個步驟。如何等待location.href在JavaScript中完成?
步驟1:轉到.pdf,.doc,.exe或其他不是html本地的東西。如果location.href接管了瀏覽器窗口,則不需要執行步驟2.(PDF通常會接管瀏覽器窗口)。大多數其他事情啓動了一個下載管理器進程。如.exe。但是有一些東西,比如word文檔,可能是下載的,或者根據瀏覽器設置在瀏覽器窗口中顯示。我希望它能做到hef.location能做到的事情。
第2步:但是,如果它正在下載文件,如.exe,該過程完成後,然後轉到主頁。
或者在步驟1和步驟2之間等待5秒的解決方案似乎在大多數情況下都有效。但是在一個較慢的連接上它並不總是有效。然後進入首頁,沒有完成第一次href.location調用,他們從來沒有看到PDF,只看到主頁。
僅供參考...我將它們包裝在setTimeOut中的原因與此Firefox問題有關。 Stack Overflow: 864633 assigning-to-document-location-href-without-clobbering-history
我的問題:有沒有辦法告訴location.href進程何時完成?
<script language="JavaScript"><!--
function windowOnLoad() {
setTimeout(function(){
location.href='/someurl/something.pdf'; //sometimes this is .doc file
},0);
setTimeout(function(){
location.href='/homepage';
},5000);
return false;
}
//-->
</script>
你有PHP安裝? – powtac 2009-11-17 17:12:33
除非使用ajax發佈請求,否則無法單獨使用javascript來完成此操作。閱讀它,它可能會有所幫助:http://stackoverflow.com/questions/1524487/browser-download-complete-event – Andrew 2009-11-17 22:12:22