我用下面的元頭,以下載當一個頁面被打開的文件:的Javascript鉤子=「刷新」
<meta http-equiv="refresh" content="3;URL=SomeFileName" />
有沒有一種方法,使一些JavaScript代碼運行當3秒通過,即在瀏覽器開始下載SomeFileName之前?
我用下面的元頭,以下載當一個頁面被打開的文件:的Javascript鉤子=「刷新」
<meta http-equiv="refresh" content="3;URL=SomeFileName" />
有沒有一種方法,使一些JavaScript代碼運行當3秒通過,即在瀏覽器開始下載SomeFileName之前?
您可以使用setTimeout()
來計時,但正如評論中所述,在這種情況下,使用JavaScript重定向要好得多。例如:
setTimeout(function(){
/*
* code here will be executed before the download
*/
document.location = "downloadurl";
}, 3000); // 3000ms = 3s
請注意,一些用戶代理將不會執行JS。根據需求,可能需要保持元刷新標題並在頁面加載時立即使用JS(如果瀏覽器能夠這樣做)將其移除。 – skalee
沒有什麼能阻止你從meta刷新作爲回退:) –
儘管純JavaScript重定向功能在大多數情況下都是更好的解決方案,但可能有些時候您需要它。
看看這些:
http://www.w3schools.com/jsref/event_onunload.asp
Alerts when navigating away from a web page
http://msdn.microsoft.com/en-us/library/ie/ms536907(v=vs.85).aspx
https://developer.mozilla.org/en-US/docs/DOM/window.onbeforeunload
基本上,一個事件,當用戶試圖關閉或導航離開該頁面被解僱。您可以連接到該事件進行自定義。
window.onbeforeunload = function() {
var who = ["lover", "friend"][(Math.floor(Math.random()*2)+1)];
return "Goodbye my " + who;
};
此函數應該返回一個字符串或沒有。如果它是一個字符串,則會出現一個對話框以確認導航離開;如果它什麼也不是,即未定義,則不發生攔截。
也可爲N OTE是:
自2011年5月25日,即調用window.showModalDialog(),window.alert(),window.confirm()和window.prompt HTML5規範狀態()在這個事件中方法可能會被忽略。
如何做js的重定向,並刪除這個醜陋的標題? – zerkms
@zerkms爲什麼「好」而不是「反而」? –
我的意思是「讓一些JavaScript代碼」以及在一個地方重定向 - 在JS(同意,這太隱式) – zerkms