首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转义"/“在IE9中不起作用

转义"/“在IE9中不起作用
EN

Stack Overflow用户
提问于 2011-05-06 16:59:36
回答 3查看 1.2K关注 0票数 1

我有一个javascript函数,它使用一些捕获的参数构建一个URI片段,然后提交我的表单。

示例:

代码语言:javascript
复制
function consultResource(contextName){
    var form = document.forms[0];
    var f1 = form.thename.value;//accepts strings without special symbols
    var f2 = escape(form.thedate.value); //accepts only strings in the form 'dd/mm/yyyy'
    var action = "/"+contextName+"/CtrlComparison?name="+f1+"&date="+f2;
    form.action = action;
    form.submit();
}

生成的URI片段的示例如下

/MyContext/CtrlComparison?name=report01&date=06/05/2011

这个片段可以工作,提交表单并带来PDF文档OK:

  • Firefox3.x-4.x(未在2.x上测试)
  • Internet 6-8
  • Chrome 9.x-11.x (其他未测试版本)
  • Opera 10.x-11.x (其他未测试版本)

f 211

但我也需要它在9中工作。目前,当我在IE9中提交相同的信息时,我会收到以下消息:

而不是这样的:

IE9不会转义/并将其作为URI上的路径分隔符的一部分。

问题是:如何才能在IE9中正确地生成URI片段?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-06 17:54:56

这不是您的表单或操作URL的问题。当您写出PDF时,您需要发送正确的标题。

在您的php头(“内容-处置:附件;filename:comparativoCajasRegistradas.pdf");

票数 3
EN

Stack Overflow用户

发布于 2011-05-06 18:13:54

对于查询参数值,您可能希望尝试encodeURIComponent而不是escape

-- encodeURIComponent()函数编码一个URI组件。

此函数对特殊字符进行编码。此外,它还编码了以下字符:,/?:@&=+$ #

票数 1
EN

Stack Overflow用户

发布于 2011-05-06 17:10:16

转义函数对特殊字符进行编码,但*@-_+除外。/。所以在客户端替换它,然后把它放回服务器端。

JS

代码语言:javascript
复制
var f2 = form.thedate.value.replace(/\//g, "x");

JAVA

代码语言:javascript
复制
f2 = f2.replaceAll("x", "/");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5914660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档