1

这段代码是一个简单的函数调用:

<input type="submit" name="_eventId_load" onclick="toLoad('2012\9\27\15\2012-09-27T15-05-59-512.00638.eml');" value="Load"/>

这是我在 js 函数中收到的:

 function toLoad(path) {
    document.getElementById("emailPath").value = escapepath);
}

通过萤火虫,我看到参数path包含:201292-09-27T15-05-59-512.00638.eml
在 scape 函数之后:20129%17%0D%812-09-27T15-05-59-512.00638.eml

价值观完全不同。\在将其发送到 js 函数之前,我该如何工作/编辑 te ?

提前致谢。

编辑

这是解决方案:

<input id="filePath-${status.index}" type="hidden" value="${file.path}"/>
<input type="submit" onclick="toLoad('${status.index}'" value="Load"/>

这些输入在一个表单中,每个元素都是一个文件。我需要${status.index}知道我要加载哪个文件。${file.path}包含我要替换的路径。

function toLoad(index) {
    var emailPath = document.getElementById("filePath-" + index).value.replace(/\\/g,"\\\\");
    document.getElementById("emailPath").value = emailPath;
}

正确的输入将包含在 div 中,因此我可以将其用于最终功能。

感谢您的回答!

4

3 回答 3

3

\一个转义字符,因此需要复制才能成为文字\,即用替换所有\符号\\并重试。

请参阅Javascript - 替换字符串文字中的转义字符

于 2012-09-28T08:02:37.137 回答
0

\在 Javascript 中被保留为特殊字符的转义字符。

http://www.javascriptkit.com/jsref/escapesequence.shtml

逃脱\本身发生在两个\\

于 2012-09-28T08:03:12.317 回答
0

使用 escape 和 unescape 函数 unescape() 函数对编码的字符串进行解码。 http://www.w3schools.com/jsref/jsref_unescape.asp

于 2012-09-28T08:03:13.427 回答