我有一个可通过两个网址获得的资源,例如:mygoodlookingurl.de/nice.jsf和mybadlookingurl.de/bad123454423523413413.jsf
我必须将这个看起来很糟糕的网址调用一次,之后我想重定向。目前我使用了JQuery的document-ready()函数并调用了cleanUrl(),它通过top.location.href =“mygoodlookingurl.de/nice.jsf”重定向;
不幸的是发生了无限循环,因为在onload上加载url后,函数会一次又一次地被调用。该怎么办?
这是JS-Code(我正在使用一个技巧来读取带有创建的锚标记的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;
}
}
答案 0 :(得分:0)
只是将重定向置于某种形式的条件测试中?
var cleanedUrl = "https://xxx.xxx.xx/xxx.jsf";
if(top.location.href !== cleanedUrl){
top.location.href = cleanedUrl;
}
答案 1 :(得分:0)
感谢杰克,我能够通过
处理这个问题return mygoaljsffile.jsf?faces-redirect=true;
在我的Bean方法中。