【问题标题】:How do I make my HtmlMenuItem open a URL in a new tab?如何让我的 HtmlMenuItem 在新选项卡中打开 URL?
【发布时间】:2012-05-16 14:40:08
【问题描述】:

我正在使用richFaces 3.3.3。

我需要让 menuItem 打开一个带有简单 URL 的新标签页……例如 google.com。 现在我尝试了这段代码:

HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setid("id");
menuItem.setValue("My menu link new tab");

menuItem.setSubmitMode("server");
menuItem.setTarget("_blank");
menuItem.setOnClick("document.location.href='www.gooogle.com'");

但这会使我当前的标签页被重定向到谷歌,并打开一个带有我所在上下文的新标签页。 我想留在我的地方,新标签“_blank”转到谷歌。

我尝试将 onClick 替换为 onComplete,但这也会使新选项卡进入我的上下文。 但不要执行 我试图将 HtmlOutputLink 作为我的 menuItem 的子项,但不执行对 outPutLink 的单击 .. 对 menuItem 执行单击 ...

HtmlMenuItem menuItem = new HtmlMenuItem();
menuItem.setid("id");
menuItem.setValue("My menu link new tab");
HtmlOutputLink cLink = new HtmlOutputLink();
cLink.setTarget("_blank");
cLink.setValue("www.google.com");
menuItem.getChildren().add(cLink);

【问题讨论】:

  • "但这会使我当前的标签页被重定向到谷歌,并打开一个带有我所在上下文的新标签页。我想留在我的位置,新标签页“_blank”转到谷歌。” - 当然。您正在使用 document.location.href,它将更改您当前窗口的 href。此外,setTarget 永远不会以这种方式工作。

标签: jsf hyperlink richfaces menuitem target


【解决方案1】:

您只能使用 OutputLink,例如:

HtmlOutputLink cLink = new HtmlOutputLink();
cLink.setValue("http://www.google.com");
cLink.setTarget("_blank");
HtmlOutputLabel label = new HtmlOutputLabel();
label.setValue("Google");
cLink.getChildren().add(label);

所以,只需将您的链接添加到某个组件上。 也许 HtmlMenuItem 使用 javascript 打开页面,您的浏览器将其视为弹出窗口。

【讨论】:

  • 卢卡斯梅伦西亚 ^^ 干得好
【解决方案2】:

你在用这个吗? <ui:include src="#{bean.link}"/>

你的问题不是很准确,所以我只能想出这个主意......

【讨论】:

  • no.. 我包括动态菜单,通过代码...我有一个菜单栏,在我的开始代码中我包括菜单项。
猜你喜欢
  • 1970-01-01
  • 2014-01-10
  • 2016-05-03
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
  • 2019-05-18
  • 2012-05-02
  • 1970-01-01
相关资源
最近更新 更多