调用页面后,jQuery函数加载

问题描述:

我有与click事件的链接在我的JQuery,类似下面:调用页面后,jQuery函数加载

$('#TopLoginLink').click(function() 
{ 
//Here I want the current page should be reloaded with "https" and after the page is loaded then it will automatically call my function MyDialogPopup(). Something like below: 
var myCurrentPage = window.location.href.replace('#',''); 
       var reloadURL; 

       if (https!=' ') 
       { 
        reloadURL = myCurrentPage.replace('#','').replace("http",https); 
        window.location.href = reloadURL; 
        MyDialogPopup(); 

       } 

}); 

上面的代码重新加载我的网页完美,但我的问题是,我的函数也被称为immediatley,但我希望我的函数只有在我的页面完全加载了“https”时才会被调用。

请建议!我怎么能做到这一点

+0

定义 “完全” - 这是否包括图像和样式表?如果是,请使用`load()`;如果没有,使用`.ready()`:http://api.jquery.com/ready/ – 2011-02-13 09:38:54

+0

什么,当我的登录链接点击顶部,它重新加载相同的页面与“https” – 2011-02-13 09:44:25

你应该定义一些标志。例如把东西放在cookie中或追加到url。然后,在你的JavaScript中定义ready处理那么当加载页面时将被称作:

$(document).ready(function() { 
    if (checkFlag()){ 
     MyDialogPopup(); 
     clearFlag(); 
    } 
}); 

你的处理器将寻找这样的:

if (https!=' ') 
{ 
    reloadURL = myCurrentPage.replace('#','').replace("http",https); 
    setFlag(); 
    window.location.href = reloadURL; 
} 

如果您坚持使用cookies,您可以使用jquery.cookie插件。这里是代码setFlagcheckFlagclearFlag

function setFlag(){ 
    $.cookie('show_dlg', 'true'); 
} 

function clearFlag(){ 
    $.cookie('show_dlg', null); 
} 
function checkFlag(){ 
    return $.cookie('show_dlg') == 'true'; 
} 

你可以修改后放在$(document).readyMyDialogPopup方法调用,而不是window.location.href

$(function() { 
    if (do some checks on the url if we need to call the method) { 
     MyDialogPopup(); 
    } 
}); 
+0

我已经得到我在$(document).ready – 2011-02-13 09:42:49

我相信这个代码执行一次加载页面:

$(document).ready(function() {} 

$(document).ready(function() { 
    // all your code here 
});