Javascript 是否为多选列表中的每个选定元素打开新窗口?

Javascript 是否为多选列表中的每个选定元素打开新窗口?,javascript,sapui5,Javascript,Sapui5,我试图根据多选列表中的选定项打开新窗口,但没有结果,它只打开一个窗口,始终是第一个选定窗口,即使有两个或更多 以下是我目前掌握的代码: var oModelPrint = new sap.ui.model.json.JSONModel(docImprimir); var oList = new List({ mode: 'MultiSelect', items: { path: '/Items', t

我试图根据多选列表中的选定项打开新窗口,但没有结果,它只打开一个窗口,始终是第一个选定窗口,即使有两个或更多

以下是我目前掌握的代码:

    var oModelPrint = new sap.ui.model.json.JSONModel(docImprimir);
    var oList = new List({
        mode: 'MultiSelect',
        items: {
            path: '/Items',
            template: new sap.m.StandardListItem({
                title: '{text}',
                selected: '{selected}'
            })
        }
    });
    oList.setModel(oModelPrint);
    var dialog = new sap.m.Dialog({
        title: 'Imprimir Documento',
        type: 'Message',
        content: [
            oList
        ],
        beginButton: new Button({
            text: 'Imprimir',
            press: function(oEvent) {
                var valorItemSelected = oList.getSelectedItem();
                var numItems = oList.getSelectedItems().length;
                var oObject = valorItemSelected.getBindingContext().getObject();
                var key = oObject.key;
                var navigationService = sap.ushell.Container.getService('CrossApplicationNavigation');

                var i = 1;

                 //Here is where i have the issue
                for (i = i; i <= numItems; i++) {

                var hash = navigationService.hrefForExternal({
                    target: {
                        semanticObject: 'zrefiopdf01Sem',
                        action: 'display'
                    },
                    params: {
                        DocNumber: document,
                        Formtype: key
                    }
                });

                var url = window.location.href.split('#')[0] + hash;
                sap.m.URLHelper.redirect(url, true);

                }
var-oModelPrint=new sap.ui.model.json.JSONModel(docImprimir);
var oList=新列表({
模式:“MultiSelect”,
项目:{
路径:'/Items',
模板:新sap.m.StandardListItem({
标题:“{text}”,
选定:“{selected}”
})
}
});
oList.setModel(oModelPrint);
var dialog=新建sap.m.dialog({
标题:“临时文件”,
键入:“消息”,
内容:[
寡头
],
beginButton:新按钮({
文本:'Imprimir',
按:功能(oEvent){
var valorItemSelected=oList.getSelectedItem();
var numItems=oList.getSelectedItems().length;
var oObject=valorItemSelected.getBindingContext().getObject();
var key=oObject.key;
var navigationService=sap.ushell.Container.getService('CrossApplicationNavigation');
var i=1;
//这就是我的问题所在
对于(i=i;i使用
window.open(*url*)

下面的演示一般都可以使用,但这里没有,因为它是沙盒式的StackOverflow

让btn=document.getElementById(“btn”);
btn.addEventListener(“点击”,函数(e){
设g=document.getElementById(“google”),b=document.getElementById(“bing”);
如果(g.选中)窗口。打开(“http://www.google.com/");
如果(b.选中)窗口。打开(“http://www.bing.com/");
});


打开
您需要为您的站点禁用浏览器的弹出窗口阻止程序(并要求您的用户也这样做)


大多数现代浏览器的弹出窗口拦截器(包括Chrome内置的拦截器)都是基于“一次点击,一个窗口”工作的。脚本只允许在处理用户输入时打开窗口(例如,在运行
onclick
处理程序时),并且在给定的事件处理程序中只允许打开一个窗口。您的脚本违反了此规则,并且在第一个窗口之后的每个窗口都被阻止。

是的,无论如何,这就是为了避免此问题吗?某种停用用户弹出窗口阻止程序的方法?有解决方法吗?没有。想想如果您可以关闭此选项,会有多大的干扰和荒谬最终用户弹出窗口拦截器。您应该建议弹出窗口拦截器会影响功能,并让用户最终选择是否满意。是否有任何方法跳过此操作?是--要求用户为您的站点禁用弹出窗口拦截器。正确的方法是什么?是否有默认方法或者这个,或者我可以创建我的?通过向用户解释他们需要做什么,以及为什么。网站无法自行禁用弹出窗口阻止程序。