我有代码片段,点击链接后执行,如下所示
cj_redirecturl="/HomeWork/main/load_course";
utility.xhttprw.data(cj_redirecturl,{data:courseid},function(response){
if(response){
window.location.href=base_url+"main";
///next
utility.xhttprw.data(redirecturl,{data:""},function(response){
if(response){
id=ent;
document.getElementById('content').innerHTML=response;
// Assignemnt module
//Call function from javascript/assignment.js file to display particular assignment (ent:means assignment_id) //
if(con==5)
{
get_assignment_id(ent);
}
if(con==9)
{
get_content_details(ent);
}
} //end of response
},false,false,false,'POST','html',true);
}
},false,false,false,'POST','html');
上面的代码window.location.href=base_url+"main";
中的将页面重定向到其各自的页面,但这会停止执行紧接着它编写的代码。现在我希望这个代码在写入时执行,即首先代码应该带我到相应的“主”页面,然后代码写入后必须执行并给我一个必需的输出。
有人可以指导我实现这个目标吗?
答案 0 :(得分:8)
window.location.href = base_url + "main";
< - 加载此页面时,请调用///next
你必须添加一些参数:
window.location.href=base_url+"main?parameter=true";
另一种方法是将带有ajax的页面加载到html中的div中。
从jQuery看一下$.ajax()
。
答案 1 :(得分:2)
请尝试写
window.location.href = base_url + "main";
在if条件结束之前或使用
setTimeout('window.location.href=base_url+"main"', 2000);
答案 2 :(得分:2)
正如已经注意到的那样,在你去另一个页面后你无法执行代码
你可以做的是创建重定向器功能,它将在cookie中传递你的功能,并在下一页重定向然后评估它。 (下一页再次调用该重定向器)
但你应该知道一些问题
1)包装。由您来决定如何包装饼干。
2)征兵。如果您传递非打包的OR非加密cookie,“坏用户”可以在该cookie中传递一些恶意软件代码。
3)你应该有非常好的理由去做。 这种方式太复杂,难以编码,难以维护
如果您执行其他服务器端控件,将其保存在某处并在下一页上重新加载并再添加一个请求,那就更好了。
答案 3 :(得分:1)
您需要将其余的JS代码包装在window.onbeforeunload回调中。
答案 4 :(得分:0)
从页面退出之前,您需要使用onBlur事件继续执行js代码。
示例:
function downloadExcel()
{
// Your code...
$('#download_excel_button').hide();
$('#download_spinner').show();
window.location.href = download_page;
window.onblur = function(event)
{
// other event code...
$('#download_spinner').hide();
$('#download_excel_button').show();
}
}