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";

もう 1 つの方法は、ajax を含むページを html の div にロードすることです。

$.ajax()jQueryからご覧ください。

于 2011-11-21T09:33:03.040 に答える
2

すでに気づいたように、別のページに移動した後はコードを実行できません

あなたができることはリダイレクタ関数を作成することです。それはあなたの関数をクッキーで渡し、リダイレクトしてから次のページでそれを評価します。(次のページでそのリダイレクタへの別の呼び出しで)

ただし、問題の数に注意する必要があります

1)パッキング。クッキーの梱包方法はあなた次第です。

2)暗号化。パックされていない、または暗号化されていないCookieを渡すと、「不正なユーザー」がそのCookie内のマルウェアコードを渡す可能性があります。

3)あなたはそれをする非常に非常に正当な理由を持っているべきです。この方法は複雑すぎて、コーディングが難しく、保守が困難です

追加のサーバー側コントロールを実行する場合は、それをどこかに保存し、次のページでもう1つのリクエストをリロードする方がはるかに優れています。

于 2011-11-21T09:39:28.090 に答える
2

書いてみてください

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

if 条件または use の終了直前

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

window.onbeforeunload コールバック内に残りの JS コードをラップする必要があります。

こちらをご覧ください:ページ終了イベントのインターセプト

于 2011-11-21T09:35:32.203 に答える