窗口NT路径问题中的javascript评估反斜杠

窗口NT路径问题中的javascript评估反斜杠,javascript,eval,Javascript,Eval,我正在经历一个经典的JS案例(在我看来),但在谷歌搜索了很多次之后,仍然无法找到解决方案。反斜杠在JS中被视为转义字符,但当您需要从JS传递windows路径并打印它时,您会怎么做 我之所以使用eval,是因为我的javaapplet正在执行代码,并在有字符串要计算时放置位。这就是为什么评估是必要的,但我举了一个例子如下: <div id="mainTabs"></div> <script> var s = "document.getElementById('

我正在经历一个经典的JS案例(在我看来),但在谷歌搜索了很多次之后,仍然无法找到解决方案。反斜杠在JS中被视为转义字符,但当您需要从JS传递windows路径并打印它时,您会怎么做

我之所以使用eval,是因为我的javaapplet正在执行代码,并在有字符串要计算时放置位。这就是为什么评估是必要的,但我举了一个例子如下:

<div id="mainTabs"></div>
<script>
var s = "document.getElementById('mainTabs').innerHTML='\\C\ganye\file.doc'";
eval(s);
</script>

var s=“document.getElementById('mainTabs').innerHTML='\\C\ganye\file.doc';
评估(s);;

我尝试了两次反斜杠,但不起作用,如果有人能帮助我以尽可能少的麻烦解决这个问题,我将不胜感激。

因为您使用的是eval,Javascript解释器会被调用两次-因此您需要四次反斜杠,而不是两次:

var s = "document.getElementById('mainTabs').innerHTML='\\\\\\\\C\\\\ganye\\\\file.doc'";
这将导致
s
设置为:

document.getElementById('mainTabs').innerHTML='\\\\C\\ganye\\file.doc'
因此innerHTML设置为:

\\C\ganye\file.doc

这正是你想要的。(我不确定我是否理解您需要eval()的原因,但如果您这样做,这就是解决问题的方法:-)

因为您使用eval,Javascript解释器将被调用两次-因此您需要四次反斜杠,而不是两次:

var s = "document.getElementById('mainTabs').innerHTML='\\\\\\\\C\\\\ganye\\\\file.doc'";
这将导致
s
设置为:

document.getElementById('mainTabs').innerHTML='\\\\C\\ganye\\file.doc'
因此innerHTML设置为:

\\C\ganye\file.doc

这正是你想要的。(我不确定我是否理解您需要eval()的原因,但如果您这样做,这就是解决问题的方法:-)

您需要将反斜杠增加四倍,因为字符串文本首先由JS解析器解释,然后由于eval调用再次解析结果

或者,最好避免使用eval。这几乎是不必要的,它增加了复杂性,降低了执行速度

此示例的工作原理如下:
document.getElementById('mainTabs').innerHTML='\\C\ganye\file.doc'

您需要将反斜杠增加四倍,因为字符串文本首先由JS解析器解释,然后由于eval调用再次解析结果

或者,最好避免使用eval。这几乎是不必要的,它增加了复杂性,降低了执行速度

此示例的工作原理如下:
document.getElementById('mainTabs').innerHTML='\\C\ganye\file.doc'

你好@Hammad Tariq!作为一个堆栈溢出建议,你应该考虑回过头来回答你提出的问题。对于那些有助于你的答案的人,点击左边的复选标记“接受”最好的答案。谢谢你的帮助,我现在知道如何正确回答了。为什么我要使用eval,本文将帮助您理解:Hello@Hammad Tariq!作为一个堆栈溢出建议,你应该考虑回过头来回答你提出的问题。对于那些有助于你的答案的人,点击左边的复选标记“接受”最好的答案。谢谢你的帮助,我现在知道如何正确回答了。为什么我要使用eval,本文将帮助您了解: