当前位置:  开发笔记 > 编程语言 > 正文

ie8 var w = window.open() - "消息:参数无效."

如何解决《ie8varw=window.open()-"消息:参数无效."》经验,为你挑选了5个好方法。

我有一个只有IE8问题的网站:

代码是:

var w = window.open(urlstring, wname, wfeatures, 'false');

错误是:

消息:参数无效.
行:419字符:5
代码:0
URI:http://HOSTNAME/js_context.js

我已经确认了代码的行号("行"和"URI"是正确的),我理解在IE8的更高版本中,这被认为是准确的.

我通过转储警报检查了调用中的所有传入参数,它们看起来都是有效的.

这个问题不会发生在FF(可能是3)上.

更新:

问题似乎是在执行"var w"时使用window.open()的结果.当我将该行分成两个语句时,它在IE8中有效.

UPDATE2:

基于:

http://javascript.crockford.com/code.html

当要立即调用函数时,整个调用表达式应该包含在parens中,以便很明显生成的值是函数的结果而不是函数本身.

这不完全是这里发生的事情,但我发现在IE8的兼容模式下应用该原则解决了这个问题.

var w = (window.open(urlstring, wname, wfeatures, false));

小智.. 251

这是一个旧帖子,但可能仍然对某人有用.

我有相同的错误消息.最后问题是第二个参数的名称无效,即我有一个像:

   window.open('/somefile.html', 'a window title', ');

问题是'窗口标题',因为它无效.它在以下行中运行良好:

   window.open('/somefile.html', '', ');

事实上,仔细阅读我意识到微软并不支持name第二个论点.当您查看官方文档页面时,您会看到Microsoft仅允许以下参数,如果使用该参数:

_空白

_媒体

_parent

_搜索

_自

_最佳

当我的Windows名称在"my-windowname"这个名字中有一个短划线" - "时,IE中也出现了这个错误,IE质量永远不会让我感到惊讶. (33认同)

它在IE8中使用ImageDisplay1234等名称,但不适用于Image-Display-1234 (3认同)

简单地说:https://developer.mozilla.org/en/DOM/window.open - >"strWindowName没有指定新窗口的标题." (2认同)


小智.. 78

IE对窗口名称参数很挑剔.它不喜欢空格,破折号或其他标点符号.



1> 小智..:

这是一个旧帖子,但可能仍然对某人有用.

我有相同的错误消息.最后问题是第二个参数的名称无效,即我有一个像:

   window.open('/somefile.html', 'a window title', ');

问题是'窗口标题',因为它无效.它在以下行中运行良好:

   window.open('/somefile.html', '', ');

事实上,仔细阅读我意识到微软并不支持name第二个论点.当您查看官方文档页面时,您会看到Microsoft仅允许以下参数,如果使用该参数:

_空白

_媒体

_parent

_搜索

_自

_最佳


当我的Windows名称在"my-windowname"这个名字中有一个短划线" - "时,IE中也出现了这个错误,IE质量永远不会让我感到惊讶.
它在IE8中使用ImageDisplay1234等名称,但不适用于Image-Display-1234
简单地说:https://developer.mozilla.org/en/DOM/window.open - >"strWindowName没有指定新窗口的标题."

2> 小智..:

IE对窗口名称参数很挑剔.它不喜欢空格,破折号或其他标点符号.


或点或破折号或其他标点符号

3> Mr. Napik..:

当您window.open在IE中调用时,第二个参数(窗口名称)必须是预定义的目标字符串之一或字符串,其在JavaScript 中具有有效标识符形式.

那么,在Firefox作品:"作业目录9463460",并没有在互联网爆工作,并已被替换为:"Job_Directory_9463460"为例(没有空格,没有减号,没有点,它必须是一个有效的标识符) .



4> 小智..:

问题可能是wname,尝试使用上面链接中显示的那些之一,我引用:

可选的.用于指定窗口名称的字符串.此名称用作表单或锚元素上的TARGET属性的值.

_blank将sURL加载到一个未命名的新窗口中.

_media网址已加载到Microsoft Internet Explorer 6中的媒体栏中.Microsoft Windows XP Service Pack 2(SP2)及更高版本.不再支持此功能.默认情况下,URL会加载到新的浏览器窗口或选项卡中.

_parent将sURL加载到当前帧的父级中.如果框架没有父级,则此值用作值_self.

_search在Windows Internet Explorer 7中禁用,有关详细信息,请参阅Internet Explorer 7中的安全性和兼容性.否则,将在Internet Explorer 5或更高版本的浏览器搜索窗格中打开sURL.

_self将当前文档替换为指定的sURL.

_top sURL替换可能加载的任何框架集.如果没有定义框架集,则此值用作值_self.

如果使用另一个wname,window.open将不会执行...


最后一句话不正确.您还可以(a)指定要在该帧中加载页面的现有帧的名称,(b)指定要在其中加载页面的现有"命名窗口"的名称,或(c)指定不具有的页面的名称存在以创建"命名窗口".

5> 小智..:

实际上可以使用名称,但它不能有空格,所以 window.open("../myPage","MyWindows",...)应该没有问题(window.open).

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有