Javascript 将路径作为参数传递给JS函数
此代码是一个简单的函数调用:Javascript 将路径作为参数传递给JS函数,javascript,Javascript,此代码是一个简单的函数调用: <input type="submit" name="_eventId_load" onclick="toLoad('2012\9\27\15\2012-09-27T15-05-59-512.00638.eml');" value="Load"/> 通过firebug,我看到参数路径包含:201292-09-27T15-05-59-512.00638.eml 在scape函数之后:20129%17%0D%812-09-27T15-05-59-512.0
<input type="submit" name="_eventId_load" onclick="toLoad('2012\9\27\15\2012-09-27T15-05-59-512.00638.eml');" value="Load"/>
通过firebug,我看到参数路径包含:201292-09-27T15-05-59-512.00638.eml
在scape函数之后:20129%17%0D%812-09-27T15-05-59-512.00638.eml
这些值完全不同。在将te\
发送到js函数之前,我如何工作/编辑它
提前谢谢
编辑
这就是解决方案:
<input id="filePath-${status.index}" type="hidden" value="${file.path}"/>
<input type="submit" onclick="toLoad('${status.index}'" value="Load"/>
正确的输入将包含在div中,因此我可以将其用于最终功能
谢谢你的回答 该\
是一个转义字符,因此需要将其复制成文字\
,即用\
替换所有\
符号,然后重试
请参见\
在Javascript中保留为转义字符用于特殊字符
转义\
本身有两个\
使用转义和unescape函数
函数的作用是:对编码字符串进行解码。
toLoad!=SetAttachmentToLoad这是我写问题时的一个输入错误。在我的代码中,它有相同的名称,这对我没有帮助:unescape('2012\9\27\15\2012-09-27T15-05-59-512.00638.eml'):“20129 2-09-27T15-05-59-512.00638.eml”哦,我明白了。您必须转义system\符号。使用\\。对不起,误会了,谢谢。我仍然有问题,我无法使用以下命令拨打电话:如何拨打?@Blanca:。replace
在这里没有帮助,因为在执行replace之前会解释字符串。你已经在你的代码中加入了\
而不是\
,也就是说写'2012\\9\\27…'
@FelixKling是正确的。这一点在中也有解释-没有办法用JavaScript编程解决这个问题。如果路径是在后端生成的,例如使用PHP,则可以在那里执行replace调用。但是,如果您自己在HTML文件中键入常量字符串,`必须通过手动替换它而成为一个
\`。
<input id="filePath-${status.index}" type="hidden" value="${file.path}"/>
<input type="submit" onclick="toLoad('${status.index}'" value="Load"/>
function toLoad(index) {
var emailPath = document.getElementById("filePath-" + index).value.replace(/\\/g,"\\\\");
document.getElementById("emailPath").value = emailPath;
}