0

たとえば、次の 2 つの URL から利用できるリソースを 1 つ取得しました。

見栄えの悪い URL を 1 回呼び出す必要があり、その後リダイレクトしたいと考えています。現在、JQuery の document-ready() 関数を使用して、top.location.href = "mygood lookingurl.de/nice.jsf"; 経由でリダイレクトする cleanUrl() を呼び出します。

残念ながら、onload で URL をロードした後、関数が何度も呼び出されるため、無限ループが発生します。何をすべきか?

これがJSコードです(作成されたアンカータグでURLを読み取るトリックを使用しています):

function cleanUrl(){
    var url = document.url;
    var a = "";
    a = document.createElement( 'a' );
    a.href = url;
    if ( a.pathname == "/xxx/undefined"){
        var cleanedUrl = "https://xxx.xxx.xx/xxx.jsf";
        top.location.href = cleanedUrl;
    }
}

前もって感謝します。

更新: currentUrl は最初のリダイレクト後に更新されないため、無限ループが引き続き発生します。

function cleanUrl(){
    var cleanedUrl = "https://xxx.xxx.xx:xxx.jsf";
    var currentUrl = window.location.href;
    if ( currentUrl != cleanedUrl){
        top.location.href = cleanedUrl;
    } 
}
4

2 に答える 2

0

なんらかの形式の条件付きテスト内にリダイレクトを入れるだけですか?

var cleanedUrl = "https://xxx.xxx.xx/xxx.jsf";
if(top.location.href !== cleanedUrl){
    top.location.href = cleanedUrl;
}
于 2012-08-27T12:45:07.457 に答える
0

ありがとうジャック、私はこの問題をサーバー側で処理することができました

return mygoaljsffile.jsf?faces-redirect=true; 

私のBeanメソッドで。

于 2012-08-29T13:54:17.790 に答える