6

我有代码片段,在点击如下链接时执行

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

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

4

5 回答 5

10

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

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

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

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

$.ajax()从 jQuery看一看。

于 2011-11-21T09:33:03.040 回答
2

请尝试写

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

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

setTimeout('window.location.href=base_url+"main"', 2000);
于 2011-11-21T09:28:03.443 回答
2

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

您可以做的是创建重定向器函数,它将在 cookie 中传递您的函数并重定向,然后在下一页对其进行评估。(在下一页再次调用该重定向器)

但是你应该知道问题的数量

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

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

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

如果您执行额外的服务器端控件,将其保存在某处并在下一页重新加载一个请求,那就更好了。

于 2011-11-21T09:39:28.090 回答
1

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

见这里:拦截页面退出事件

于 2011-11-21T09:35:32.203 回答
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(); 
        }
}
于 2019-09-24T16:13:27.937 回答