Javascript.导航不能与JSF Primefaces一起工作



我试图重定向用户时,他们点击一个按钮通过javascript。像这样:

top.location=url;

正常情况下,这会将您重定向到指定的"url",但奇怪的是,用户被重定向到相同的页面。

是否有一种方法来重定向使用javascript与Primefaces工作的用户?不知道为什么primefaces会干扰。

<div> 
   <p:commandButton value="Cancel" onclick="javascript:$.fn.RedirectMe('http://google.com')" />
</div>
Javascript:

$.fn.RedirectMe = function(url) {      
        var confirmBox=confirm("Are you sure ?");
        if (confirmBox==false)
          {
           return false;
          }
        if(typeof(url) =="undefined" || url == null || url==""){
            top.location=top.location;
        }else{
            url = encodeURI(url);
            top.location=url;
        }

    };

<p:commandButton>默认通过ajax POST请求提交父表单。因此,它本质上是一个错误的工具。

<p:button>代替。不要忘记返回false,否则它仍然会执行隐式导航。

<p:button ... onclick="$.RedirectMe(url); return false;" />

与具体问题无关,javascript伪协议在HTML4/5兼容的事件处理程序属性中没有意义,因为它已经是默认的。此外,当您只想调用而不是创建函数时,$.fn映射是不必要的。以上给出的答案已经考虑到了这一点。最后但并非最不重要的一点是,JS命名约定规定函数名应该以小写字母开头。

相关内容

  • 没有找到相关文章

最新更新