Как изменить window.location.href в JavaScript, а затем выполнить больше JS? - PullRequest
6 голосов
/ 21 ноября 2011

У меня есть фрагмент кода, который выполняется при нажатии на ссылку, как показано ниже

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 ]

9 голосов
/ 21 ноября 2011

window.location.href = base_url + "main"; <- при загрузке этой страницы вызовите свой код, определенный как <code>///next

, вам нужно будет добавить несколько параметров:

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

Другой способ будетзагрузить страницу с помощью ajax в div в html.

Взгляните на $.ajax() из jQuery.

2 голосов
/ 21 ноября 2011

Как уже было замечено, вы не можете выполнить код после перехода на другую страницу

Что вы можете сделать, это создать функцию перенаправителя, которая передаст вашу функцию в cookie и перенаправит ее, а затем оценит на следующей странице. (с другим вызовом этого перенаправителя на следующей странице)

Но вы должны знать о количестве проблем

1) Упаковка. Вам решать, как вы упаковываете печенье.

2) Encription. Если вы передадите неупакованный ИЛИ незашифрованный файл cookie, «плохой пользователь» может передать некоторый код вредоносного кода в этот файл cookie.

3) У вас должны быть ОЧЕНЬ, ОЧЕНЬ веские причины для этого. Этот способ слишком сложный, трудно кодируемый, трудно поддерживаемый

Намного лучше, если вы сделаете дополнительные элементы управления на стороне сервера, сохраните его где-нибудь и перезагрузите на следующей странице с еще одним запросом.

2 голосов
/ 21 ноября 2011

пожалуйста, попробуйте написать

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

незадолго до конца условия if или использования

setTimeout('window.location.href=base_url+"main"', 2000);
1 голос
/ 21 ноября 2011

Вам нужно будет обернуть оставшуюся часть кода JS внутри обратного вызова window.onbeforeunload.

Смотрите здесь: Событие выхода из перехвата страницы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...