我在使用 IE8 和使用 javascript 打开新窗口并提交带有特殊字符的参数时遇到问题。
<a href="javascript:oWin('/html/de/4664286/printregistrationcontent.html?12-security question=Wie heißt Ihr Lieblingsrestaurant','PRINT',800,600);" class="print">Seite drucken</a>
问题是字母“ß”(尖锐的 S)。如您所见,上面的字符串是由于反 XSS 而编码的。此链接在 FF 和 IE6 中有效,但 IE8 将 URL 参数作为字符传输,代码为 65***(不知道 exaxt 值)。在打开的窗口中,您只会看到一个正方形(因为 65000+ 的字符不可打印)。
我还尝试使用 URL 编码而不是 HTML 编码
<a href="javascript:oWin('/html/de/4664286/printregistrationcontent.html?12-security question%3DWie hei%C3%9Ft Ihr Lieblingsrestaurant','PRINT',800,600);" class="print">Seite drucken</a>
如果我在 FF 或 IE6 中单击此链接,它会按预期工作,但 IE8 将无法将“ß”传输到服务器,因此也会以错误的方式将其取回。如果我将此 url 粘贴到 IE8,它也可以工作,但如果窗口是由 javascript 打开的,则不能。
Javascript函数oWin定义如下
function oWin(url,title,sizeH,sizeV) {
winHandle = top.open(url,title,'toolbar=no,directories=no,status=yes,scrollbars=yes,menubar=no,resizable=no,width='+sizeH+',height='+sizeV);
if(navigator.appVersion.indexOf("MSIE 3",0)==-1) id = setTimeout('winHandle.focus()',1000);
}
如果有人知道在哪里寻找原因,请回答这个问题。
谢谢amfa