首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止Javascript函数中的重定向循环

防止Javascript函数中的重定向循环
EN

Stack Overflow用户
提问于 2012-08-27 20:09:54
回答 2查看 2.2K关注 0票数 0

我得到了一个可通过两个urls获得的资源,例如: through lookingurl.de/nice.jsf和mybadlookingurl.de/bad123454423523413413.jsf

我不得不调用这个难看的url一次,然后我想要重定向。目前,我使用了JQuery的document-ready()-function并调用cleanUrl(),它通过top.location.href =“JQuery lookingurl.de/nice.jsf”进行重定向;

不幸的是,一个无限循环发生了,因为在onload上加载url之后,函数被一次又一次地调用。该怎么办呢?

下面是JS-Code (我使用了一个技巧来读取带有创建的锚标签的URL ):

代码语言:javascript
复制
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在第一次重定向后不会更新,因此仍会发生无限循环。

代码语言:javascript
复制
function cleanUrl(){
    var cleanedUrl = "https://xxx.xxx.xx:xxx.jsf";
    var currentUrl = window.location.href;
    if ( currentUrl != cleanedUrl){
        top.location.href = cleanedUrl;
    } 
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-29 21:54:18

谢谢Jack,我能够在服务器上处理这个问题

代码语言:javascript
复制
return mygoaljsffile.jsf?faces-redirect=true; 

在我的Bean方法中。

票数 0
EN

Stack Overflow用户

发布于 2012-08-27 20:45:07

只是将重定向放在某种形式的条件测试中?

代码语言:javascript
复制
var cleanedUrl = "https://xxx.xxx.xx/xxx.jsf";
if(top.location.href !== cleanedUrl){
    top.location.href = cleanedUrl;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12141724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档