【问题标题】:Making an anchor with JavaScript called from backing bean使用从支持 bean 调用的 JavaScript 制作锚点
【发布时间】:2015-12-02 11:16:01
【问题描述】:

我知道这听起来很疯狂,但我正在寻找一种方法来制作可以使用 JavaScript 从支持 bean 方法调用的锚点(如 <a href="#someId">)。出于某些原因,我需要使用commandButton 设置为ajax="false"

我正在尝试这样的事情:

RequestContext.getCurrentInstance().execute("JAVASCRIPT THAT FOCUSES MY PAGE ON A HTML COMPONENT GIVEN ITS ID");

这个想法是,即使没有 ajax,我也可以将我的页面显示回原来的位置。

有什么想法吗?这可能是一个简单的 JavaScript 命令,但我并不真正喜欢 JavaScript,也没有找到任何简单的解决方案...

【问题讨论】:

  • 您不能在非 ajax 调用中让 backingbean 返回/执行 javascript
  • 我没有找到任何可行的简单解决方案...您尝试了哪些解决方案?什么不起作用?
  • 所以您找到了一个有效的复杂解决方案?
  • 我以前的尝试都没有真正奏效,伙计们。但是 BalusC 的回答确实如此。非常感谢您的帮助!

标签: javascript html ajax jsf primefaces


【解决方案1】:

只需设置location的哈希片段。

在 JavaScript 中:

location.hash = "someId";

在 JSF/PrimeFaces 中(如果确实需要):

RequestContext.getCurrentInstance().execute("location.hash='someId'");

另一种方法是发送重定向:

externalContext.redirect(request.getRequestURI() + "#someId");

【讨论】:

  • 谢谢 BalusC!你的两个答案都在这里工作(我没有得到效果,但由于我应该在我的 xhtml 中做的其他事情,但你的答案是正确的)。我还能够找到 ajax=true 不起作用的原因,并以更好的方法解决了我的问题,但无论如何这确实是一个很好的教训。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
  • 2013-02-04
  • 2018-08-15
相关资源
最近更新 更多