代码之家  ›  专栏  ›  技术社区  ›  Danny T.

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

  •  2
  • Danny T.  · 技术社区  · 15 年前

    我尝试使用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 回复  |  直到 15 年前
        1
  •  3
  •   Danny T.    15 年前

    今天早上我发现了原因:

    在web.config中,全球化下,responseencoding设置为“cp037”。我把它改成了“iso-8859-15”,我的窗户弹出了。

    <globalization fileEncoding="ISO-8859-15" requestEncoding="ISO-8859-15" responseEncoding="ISO-8859-15" culture="auto" uiCulture="auto"/>
    
        2
  •  0
  •   Alsciende    15 年前

    有一件事是肯定的:限制与window.open()pre-se无关。我的服务器运行mod_perl,我经常使用window.open()中的get请求。

        3
  •  0
  •   andres descalzo    15 年前

    尝试用

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