我尝试在浏览器中打开一个新选项卡,但是当我点击链接时,浏览器会阻止此操作。如何在不禁用块的情况下解决此问题?我需要一个新选项卡,而不是渲染新页面我当前的页面。 我在facelet中的代码:
<h:commandLink style="width: 100%; height: 100%;"
actionListener="#{editor.actionPerformed}"
>
<f:ajax render="@this" execute="@this"/>
</h:commandLink>
动作侦听器尝试打开这样的窗口:
String script = "window.open('" + url + "');";
当我尝试启动此脚本时,它会使该窗口.open返回一个空值。 我不喜欢在点击上打开新标签,并在分配地址后给它。使用此方法存在一些问题。使用XMLHttpRequest时我也无法到达窗口的开头,这是一个方法:
script.append("var req = getXmlHttp();");
script.append("req.open('GET', '").append(url).append("');");
script.append("req.setRequestHeader('Access-Control-Allow-Origin',
'").append(url).append("');");
script.append("req.send(null);");
script.append("if (req.status == 200) {").append("window.open('" + url +
"'); ").append("}");