查询字符串参数似乎不适用于window.open

时间:2009-08-04 12:10:21

标签: javascript parameters query-string

我尝试使用javascript和window.open()函数打开多个浏览器窗口。我想通过查询字符串将参数传递给我的新窗口,如下所示:

window.open('http://www.myfoo.com/foopage.aspx?fooparm=1', '_blank');

这会打开一个新窗口,地址栏中的地址正确,但浏览器显示404找不到。但是,如果我在这个新窗口中按Enter键,页面会正确加载。

通过一些试验和错误,我发现使用没有查询字符串参数的window.open可以很好地工作:

window.open('http://www.myfoo.com/foopage.aspx', '_blank');

我应该了解window.open和查询字符串参数的限制吗? 还有另一种方法可以在新窗口中将参数传递给新页面吗?

非常感谢您的见解。

(注意:此脚本在C#中是服务器端生成的,并使用Ajax的ScriptManager.RegisterStartupScript注入到页面中。)

3 个答案:

答案 0 :(得分:3)

今天早上我找到了原因:

在web.config中,在全球化下,responseEncoding设置为“cp037”。我将其更改为“ISO-8859-15”,我的窗口正确弹出。

<globalization fileEncoding="ISO-8859-15" requestEncoding="ISO-8859-15" responseEncoding="ISO-8859-15" culture="auto" uiCulture="auto"/>

答案 1 :(得分:0)

有一件事是肯定的:限制与window.open()之前没有关系。我的服务器运行mod_perl,我经常在window.open()中使用GET请求。

答案 2 :(得分:0)

尝试

window.open("javascript:window.location='http://www.myfoo.com/foopage.aspx?fooparm=1'", "_blank");