繁体   English   中英

使用javascript打开新窗口时,带有GET参数的IE8中的问题

[英]Problem in IE8 with GET Parameters in opening a new windows with javascript

我对IE8和使用javascript并使用特殊字符提交参数打开新窗口时遇到问题。

<a href="javascript:oWin('/html/de/4664286/printregistrationcontent.html?12-security question&#61;Wie hei&#223;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将无法将“ß”传输到服务器,因此也会以错误的方式将其恢复。 如果我将此网址粘贴到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

并非所有浏览器都以相同的方式对href属性进行编码-这可能是您的问题。 我想您会发现,如果将代码移到onclick属性,它将以不同的方式处理,并且在浏览器之间更加一致。

但是,以这种方式添加onclick事件不一定是好的设计-最好在javascript中而不是在attribute标签本身中添加处理程序,但是至少值得尝试一下。

<a href="javascript:oWin('/html/de/4664286/printregistrationcontent.html?12-security question&#61;Wie hei&#223;t Ihr Lieblingsrestaurant','PRINT',800,600);" 
  class="print"
  onclick="oWin('/html/de/4664286/printregistrationcontent.html?12-security question&#61;Wie hei&#223;t Ihr Lieblingsrestaurant','PRINT',800,600); return false;"
>
  Seite drucken
</a>

...确保您在onclick处理程序中返回false,以防止遵循href链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM