我有一個腳本,我希望在頁面加載之前運行。該腳本檢查變量的值,並根據值將用戶重定向到新頁面。如何在頁面開始加載之前運行jQuery或JavaScript
如果需要,我可以成功檢查變量並重定向,但頁面仍會加載並顯示空白頁面,但會很快重定向到其他頁面。在重定向之前,我不希望在頁面上顯示空白頁面。
謝謝 版
我有一個腳本,我希望在頁面加載之前運行。該腳本檢查變量的值,並根據值將用戶重定向到新頁面。如何在頁面開始加載之前運行jQuery或JavaScript
如果需要,我可以成功檢查變量並重定向,但頁面仍會加載並顯示空白頁面,但會很快重定向到其他頁面。在重定向之前,我不希望在頁面上顯示空白頁面。
謝謝 版
也許你正在使用:
$(document).ready(function(){
// Your code here
});
試試這個:
window.onload = function(){ }
如果你不希望任何重定向之前顯示,然後您將需要使用一些服務器端腳本來完成任務,然後才能提供頁面。當您的Javascript在客戶端上執行時,頁面已經開始加載。
如果Javascript是您唯一的選擇,您最好將您的腳本作爲文檔的<head>
中包含的第一個.js文件。
除了使用Javascript,我建議在Apache或nginx服務器配置中設置重定向邏輯。
<head>
<script>
if(condition){
window.location = "http://yournewlocation.com";
}
</script>
</head>
<body>
...
</body>
這將迫使狀況檢查和URL位置的改變頁面呈現的任何事情之前。值得注意的是,在調用jQuery庫之前,你會特別想做這件事,這樣你就可以避免所有的庫加載。有些人可能還認爲,這將是更好地放置在包裝方法和調用,所以這裏是方法:
function redirectHandler(condition, url){
if(condition){
window.location = url;
}else{
return false;
}
}
這將允許你檢查多個條件並重定向到基於其不同的位置:
if(redirectHandler(nologgedin, "/login.php")||redirectHandler(adminuser, "/admin.php"));
,或者如果你只需要它來一次只運行一次,但你喜歡一無所有全局命名空間:
(function(condition, url){
if(condition)window.location=url;
})(!loggedin, "/login.asp");
不要使用$(文件)。就緒()只是把在S直接在頁面的頭部部分進行打折。頁面從頂部到底部處理,因此頂部的東西首先被處理。
這應該做的伎倆:
window.onload = function(event) {
event.stopPropagation(true);
window.location.href="http://www.google.com";
};
好運 )
嘗試卸載事件。當用戶離開頁面時,卸載事件被髮送到窗口元素。
$(window).unload(function() {
//do something
});
隱藏與CSS的身體然後顯示在頁面加載後:
CSS:
html { visibility:hidden; }
的Javascript
$(document).ready(function() {
document.getElementsByTagName("html")[0].style.visibility = "visible";
});
頁面將空白的去展示頁面加載時的所有內容,不閃光的內容,不看圖片加載等。
如果您使用服務器端腳本(如php)來執行重定向,這不會成爲問題。 – Mischa 2010-10-14 05:03:35
你現在怎麼做? – harto 2010-10-14 05:03:36