如何从IE和Chrome浏览器中的显示模式对话框窗口返回数组对象
How to return array object from showmodaldialog window in IE and Chrome browser?
从 showmodaldialog window.returnValue
在 Firefox 中,我得到了数组对象,但在 IE 和 Chrome 中出现错误。
function doYes() {
var val=[];
val.push("A");
val.push("B");
window.returnValue =val;
}
甚至数组也可以在Firefox中工作,而不是在IE9中。请参阅框中showModalDialog
段代码。
function doYes() {
var val={};
val.x="A";
val.y="B";
window.returnValue =val;
}
这也适用于Firefox而不是IE9。
自Chrome37以来,showModalDialog
已经过时了。如果您使用的是较旧的Chrome,请阅读此SO答案。
在IE11中:如果对话框的返回值是数组或对象,则无法访问其原型中的属性。例如,这会导致alert(modal_return_value)
失败并触发SCRIPT5011 Can't execute code from a freed script
错误(alert
在原型中使用toString()
方法(。
不知何故,这甚至是可以理解的,因为原型实际上位于一个窗口中,该窗口在您访问这些属性之前已关闭。我不确定这是IE11中的错误还是预期功能,但无论哪种方式都很烦人。
不过,您可以访问返回对象自己的属性。例如,您可以使用 for
循环遍历数组,甚至可以alert(modal_return_value[n])
。
或者你可以从返回值创建一个新数组,如下所示:
var arr = showModalDialog('returnsArray.htm');
if (!arr) {/* Dialog cancelled, do something */}
arr = Array.prototype.splice.call(arr, 0);
在最后一行中,我们借用splice
方法Array.prototype
并从返回的数组创建一个新数组。
相关文章:
- 打开相对于鼠标位置的CSS3/HTML5模式对话框
- Bootstrap在页面加载缓慢时会立即显示隐藏的模式对话框
- jQuery UI模式对话框覆盖淡出
- 使用Plaid Link显示自定义用户名和密码模式对话框
- 弹出格式化的模式对话框,并在用户确认时转发
- NProgress带有模式对话框以防止点击
- jQuery UI 对话框模式仅使用类选择器打开一次
- 将 HTML5 视频复制到 jQuery 对话框模式窗口中
- jQuery 对话框模式在每次点击事件期间的页面加载时都会打开
- 对话框模式关闭时刷新Iframe
- 在asp.net中,带有引导程序的对话框模式中的Gridview onclick-in会将值返回到模式父页Web表单
- JQuery对话框模式框框架
- angular ui引导srap多对话框模式
- 更新:jquery对话框模式单选按钮未选择ajax
- JQuery对话框模式选项不工作
- jQuery对话框模式在ALERT之后未执行$.post(function(){})
- CKEditor 4-iframe中的对话框/模式位置
- JQueryUI对话框模式表单缓存AJAX应用程序中的旧值
- 如果用户没有在输入中输入所有数据,则不会显示对话框模式
- 没有在对话框模式中加载脚本