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

How to change window.location.href in JavaScript and then execute more JS?

本文关键字:然后 执行 JS href window JavaScript location      更新时间:2023-09-26

在点击链接时执行的代码片段如下

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()

请试着写

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

在if条件结束前使用

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

正如已经注意到的,您不能在转到另一个页面后执行代码

你可以做的是创建重定向函数,它将传递你的函数在cookie和,重定向,然后在下一页eval它。(与另一个调用重定向器在下一页)

但是你应该意识到一些问题

1)包装。如何包装饼干由你来决定。

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

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

如果你做了额外的服务器端控件,那就更好了,把它保存在某个地方,然后在另一个页面上重新加载。

你需要把JS代码的其余部分包装在一个窗口内。onbeforeunload回调。

查看这里:拦截页面退出事件

你需要使用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(); 
        }
}