在js方法中循环调用window.showModalDialog(),第一次会正常显示弹出页面,第二次就会报js错误。代码如下:
1 var dialogUrl = "url"; 2 var dialogSet = "dialogHeight:180px;dialogWidth:350px;help:no;status:no;center:yes;"; 3 var str = ""; 4 var rtnObj = new Object(); 5 var isAll = false; 6 for ( var j = 0; j < indexIds.length; j++) 7 { 8 if (j > 0) 9 { 10 str += "★"; // 分隔符 11 } 12 13 rtnObj = new Object(); 14 rtnObj = window.showModalDialog(dialogUrl,"",dialogSet); 15 str += indexIds[j]; 16 str += "☆"; // 分隔符 17 str += rtnObj.cancelComment; // 返回值 18 alert(str); 19 }
错误信息如下:
IE8 Debug模式下会报如图显示的错误:
弹出时,url没有变动。
window.showModalDialog()不能循环使用?
难道是window.showModalDialog()不能连续调用?
找到问题原因了
IE浏览器的问题,本机的浏览器有问题,在别人的机器上没有问题。
window.showModalDialog()方法可以连续调用!
解决这个问题的最终方法如下:
在【工具】-【Internet选项】-【隐私】选项卡中 点击【弹出窗口阻止程序】右边的【设置】按钮,将访问的网址添加到【允许的站点】列表中