Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按h打开URL:selectOneMenu_Javascript_Ajax_Jsf_Seam - Fatal编程技术网

Javascript 按h打开URL:selectOneMenu

Javascript 按h打开URL:selectOneMenu,javascript,ajax,jsf,seam,Javascript,Ajax,Jsf,Seam,我有一个JSF1.2 selectOneMenu组件。 当前,用户从下拉菜单中选择一个项目,然后单击输出链接以在新浏览器窗口中打开url: <h:selectOneMenu value="#{itemSelected}" valueChangeListener="#{someclass.generateInfoForURL}" onchange="submit()" > <s:selectItems var="_items" value="#{itemsList}" la

我有一个JSF1.2 selectOneMenu组件。
当前,用户从下拉菜单中选择一个项目,然后单击输出链接以在新浏览器窗口中打开url:

<h:selectOneMenu value="#{itemSelected}"  valueChangeListener="#{someclass.generateInfoForURL}" onchange="submit()" >
  <s:selectItems var="_items" value="#{itemsList}" label="#_items.itemName}" /> 
  <s:convertEntity />
</h:selectOneMenu>  

<h:outputLink value="URL&amp;generatedInfo=#{someclass.component.generatedInfo}" target="_blank" > 
    <f:verbatim>View Report</f:verbatim>            
</h:outputLink> 

查看报告

我需要的是;当用户选择其中一个下拉项时,它应该在一个新页面中打开URL,而无需选择链接的中间步骤。我可以在支持bean中构建URL,但如何让它打开新的浏览器窗口?

将URL作为项目值提供,并使用JavaScript在新选项卡/窗口中打开它,而不是提交表单。您只需要确保所有URL都已正确地预先准备好

例如


...

(您当然可以将其作为
提供,以上只是一个基本的开始示例)

我尝试过:
页面加载,但generateInfoForURL方法在页面加载时运行,仅此而已,从下拉列表中选择一项没有任何作用。我遗漏了什么吗?你的JS语法无效。引号应该围绕JS字符串,而不是EL表达式。更简单的方法是让item value返回正确的值。当您更改值时,EL表达式不会重新计算。现在我更好地了解了您试图实现的目标,您可能希望改为在值更改侦听器方法中执行重定向。我用一个示例更新了答案。thanx BalusC可以工作,但不会打开新页面,它会重定向当前页面。我会给它一个答案,因为我在其他地方需要它,如果我不能计算出JS来打开一个新页面,我会把它标记为答案。哦,对不起,我完全错过了这一部分。最好的选择是JavaScript的
window.open(url)
方法。确保URL事先准备好,然后在
onchange
中进行更改。
<h:selectOneMenu onchange="window.open(value)">
    <f:selectItem itemLabel="Select page.." />
    <f:selectItem itemLabel="page1" itemValue="page1.jsf" />
    <f:selectItem itemLabel="page2" itemValue="page2.jsf" />
    <f:selectItem itemLabel="page3" itemValue="page3.jsf" />
    ...
</h:selectOneMenu>