如何在JavaScript中更改window.location.href然后执行更多JS?

我有代码片段,点击链接执行,如下所示

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"; 将页面重定向到其各自的页面,但这会停止执行紧挨着它编写的代码。 现在我希望这段代码在写入时执行,即首先代码应该带我到相应的“主”页面,然后代码写入后必须执行并给我一个必需的输出。

有人可以指导我实现这一目标吗?

window.location.href = base_url + "main"; < - 当您加载此页面时,请调用///next定义的代码

你将不得不添加一些参数:

 window.location.href=base_url+"main?parameter=true"; 

另一种方法是将带有ajax的页面加载到html中的div中。

看看jQuery中的$.ajax()

正如已经注意到的那样,在您转到另一个页面后,您无法执行代码

你可以做的是创建重定向器function,它将在cookie中传递你的function,并在下一页重定向然后评估它。 (下一页再次调用该重定向器)

但是你应该知道一些问题

1)包装。 由您决定如何包装cookies。

2)征兵。 如果您传递非打包的OR非加密cookie,“坏用户”可以在该cookie中传递一些恶意软件代码。

3)你应该有非常好的理由去做。 这种方式太复杂,难以编码,难以维护

如果您执行其他服务器端控件会更好,将其保存到某个地方并在下一页上重新加载另外一个请求。

请尝试写

 window.location.href = base_url + "main"; 

就在if条件或使用结束之前

 setTimeout('window.location.href=base_url+"main"', 2000); 

您需要将其余的JS代码包装在window.onbeforeunload回调中。

请参见此处: 拦截页面退出事件