Javascript "window.open"代码在 Internet Explorer 7 或 8 中不起作用

标签 javascript jquery internet-explorer window.open

我在我的网站上使用这段 jQuery/Javascript 代码来打开一个弹出窗口:

$('#change_photo_link').click(function(){
    $id = $('#id').attr('value');

    window.open("photo.upload.php?id=" + $id,"Upload Photo",
    "menubar=no,width=430,height=100,toolbar=no");
});

此代码适用于 Firefox 和 Chrome。它不适用于 IE7 或 IE8(尚未测试 IE6)。 IE 在 window.open 行弹出错误。为什么? IE 给出的错误是“Invalid Argument”,仅此而已。

最佳答案

导致它的是第二个参数中的空格。如果您使用“上传照片”而不是“上传照片”,它会起作用:

$('#change_photo_link').click(function(){
    $id = $('#id').attr('value');

    window.open("photo.upload.php?id=" + $id,"UploadPhoto",
    "menubar=no,width=430,height=100,toolbar=no");
});

关于为什么在 window.open()windowName 参数中有一个空格会导致错误,我似乎找不到任何官方原因,但这很可能只是一个实现细节。 windowName 用作内部引用,可以用作 anchor 或表单的目标属性的值,所以我猜 IE 无法在内部处理它。 Gecko/Firefox 的引用文档说这个参数不应该 不包含空格,但显然当前版本的 Gecko 没有问题,如果有的话。

关于Javascript "window.open"代码在 Internet Explorer 7 或 8 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2189537/

相关文章:

javascript - Bootstrap : Slider not working

javascript - 如何在不破坏代码的情况下删除链接

jquery - JQuery 中附加字段的自动完成

html - Internet Explorer 8 规模问题

javascript - BHO Internet Explorer 插件 - 脚本注入(inject)问题

javascript - CSS- 扩展子元素但保持父元素的尺寸不变。创建下拉菜单

javascript - 在 Javascript 中转换时区时如何考虑夏令时?

javascript - 为什么我的自定义 Google Analytics 事件没有触发?

javascript - 如何在 fullCalendar.io 中将 UTC 日期转换为用户时区

资源管理器中的 CSS 中断