你如何避免在javascript window.open上剥离一层转义编码?

时间:2011-07-07 12:39:43

标签: javascript encoding escaping

我们网站上第一次有一个链接,它需要有几层编码才能通过公司的身份验证门户。当用户从window.open函数复制目标并将其粘贴到文本编辑器中时,同样在新窗口中显示的目标上 - 当你比较两者时,窗口中显示的那个被剥离了一层编码。

我们已经确定客户端上发生了这种情况,但没有人知道为什么或要做些什么来解决它。这是个常见的问题吗?我们有什么想法?

示例:我们有一个javascript函数:

function OpenStandardWindow(url, h, w)
{
    var t = (screen.height / 2) - (h / 2) - 75;
    var l = (screen.width / 2) - (w / 2);
    window.open(url,"_blank","height=" + h + ",width=" + w + ",top=" + t + ",left=" + l + ",resizable=yes,scrollbars=yes,status=yes,toolbar=yes,location=yes,menubar=yes");
}

适用于没有转义编码的网址。

但是当这样的网址http://www.site.com/dispatcher?realm=example&BaseURL=%25253dhttps%2525253a%2525252f%2525252fexample.domain.com..etc

窗口中显示的是: http://www.site.com/dispatcher?realm=example&BaseURL=%253dhttps%25253a%25252f%25252fexample.domain.com

请注意,新网址已丢失一层转义编码(即“25”)。

为什么会这样?

0 个答案:

没有答案