调用页面后,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”时才会被调用。
请建议!我怎么能做到这一点
答
你应该定义一些标志。例如把东西放在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插件。这里是代码setFlag
,checkFlag
,clearFlag
:
function setFlag(){
$.cookie('show_dlg', 'true');
}
function clearFlag(){
$.cookie('show_dlg', null);
}
function checkFlag(){
return $.cookie('show_dlg') == 'true';
}
答
你可以修改后放在$(document).ready
的MyDialogPopup
方法调用,而不是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
});
定义 “完全” - 这是否包括图像和样式表?如果是,请使用`load()`;如果没有,使用`.ready()`:http://api.jquery.com/ready/ – 2011-02-13 09:38:54
什么,当我的登录链接点击顶部,它重新加载相同的页面与“https” – 2011-02-13 09:44:25