首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ie8 var w= window.open() -“消息:无效参数。”

ie8 var w= window.open() -“消息:无效参数。”
EN

Stack Overflow用户
提问于 2009-04-02 17:27:47
回答 14查看 117.4K关注 0票数 113

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

代码是:

代码语言:javascript
复制
var w = window.open(urlstring, wname, wfeatures, 'false');

错误是:

消息:参数无效。

行: 419字符:5

代码:0

URI:http://HOSTNAME/js_context.js

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

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

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

更新:

问题似乎是在执行"var w“时使用赋值window.open()的结果。当我将这一行拆分为两个语句时,它可以在IE8中工作。

UPDATE2:

基于:

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

当一个函数被立即调用时,整个调用表达式应该用括号括起来,这样就可以清楚地看到所产生的值是函数的结果,而不是函数本身。

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

代码语言:javascript
复制
var w = (window.open(urlstring, wname, wfeatures, false));
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2009-09-22 20:46:36

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

我也有同样的错误信息。最后,问题是第二个参数的名称无效,也就是说,我有一行代码:

代码语言:javascript
复制
   window.open('/somefile.html', 'a window title', 'width=300');

问题出在“窗口标题”,因为它无效。使用下面这行代码可以很好地工作:

代码语言:javascript
复制
   window.open('/somefile.html', '', 'width=300');

事实上,仔细阅读后我意识到微软并不支持name作为第二个参数。当您查看official documentation page时,您会看到微软只允许以下参数,如果使用该参数的话:

  • _blank
  • _media
  • _parent
  • _search
  • _self
  • _top
票数 251
EN

Stack Overflow用户

发布于 2010-01-13 05:30:11

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

票数 78
EN

Stack Overflow用户

发布于 2011-01-13 23:29:48

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

所以什么工作在火狐:“工作目录9463460",工作在互联网爆炸者,并必须被替换为:"Job_Directory_9463460”例如(没有空格,没有减号,没有点,它必须是一个有效的标识符)。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/710756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档