【问题标题】:Query string parameters do not seem to work with window.open查询字符串参数似乎不适用于 window.open
【发布时间】:2009-08-04 12:10:21
【问题描述】:

我尝试使用 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 注入到页面中。)

【问题讨论】:

    标签: javascript parameters query-string


    【解决方案1】:

    今天早上我找到了原因:

    在 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】:

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

      【讨论】:

        【解决方案3】:

        试试

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

        【讨论】:

        • 标签“”也有同样的问题,这是我解决的问题,我遇到的问题是 502 错误。可以判断是不是同一个问题
        猜你喜欢
        • 1970-01-01
        • 2011-11-01
        • 1970-01-01
        • 2020-04-04
        • 2023-01-05
        • 1970-01-01
        • 1970-01-01
        • 2018-08-04
        相关资源
        最近更新 更多