意外的令牌ILLEGAL

时间:2013-07-21 18:25:31

标签: javascript

var url = "C:\xampp\htdocs\wcf2\wcf/attachments/5d/18-5dffacdfe6d2cf1db8dfabbb5b53ae8dc65bd325";

结果为Uncaught SyntaxError: Unexpected token ILLEGAL。有没有办法在javascript中修复它,还是我需要在PHP之前将其转义?

编辑:我的脚本如下所示:

<script>
  window.onload = function() {
    thingiurlbase = "{@$__wcf->getPath('td')}js";
    thingiview = new Thingiview("viewer");
    thingiview.setObjectColor('#C0D8F0');

    thingiview.initScene();
    var url = "C:\\xampp\htdocs\\wcf2\\wcf/attachments/5d/18-5dffacdfe6d2cf1db8dfabbb5b53ae8dc65bd325";
    thingiview.loadSTL(url); 
    thingiview.setRotation(false);
  }
</script>

2 个答案:

答案 0 :(得分:2)

您需要转义反斜杠字符。

var url = "C:\\xampp\\htdocs\\wcf2\\wcf/attachments/5d/18-5dffacdfe6d2cf1db8dfabbb5b53ae8dc65bd325";

否则,JavaScript会尝试将\x\h\w解释为转义的特殊字符。

在这种特殊情况下,看起来您只需将\替换为/代替:

var url = "C:/xampp/htdocs/wcf2/wcf/attachments/5d/18-5dffacdfe6d2cf1db8dfabbb5b53ae8dc65bd325";

答案 1 :(得分:1)

你需要逃避反斜杠。

var url = "C:\\xampp\\htdocs\\wcf2\\wcf/attachments/5d/18-5dffacdfe6d2cf1db8dfabbb5b53ae8dc65bd325";

如果从PHP打印字符串,您可以使用addslashes为您完成工作。

$test = 'C:\xampp\htdocs\wcf2\wcf/attachments/5d/18-...';
echo $test . "\n";
echo addslashes($test);

>> C:\xampp\htdocs\wcf2\wcf/attachments/5d/18-...
>> C:\\xampp\\htdocs\\wcf2\\wcf/attachments/5d/18-...

旁注

顺便说一句,你的方法有两件事是不正确的:

  1. 字符串中的斜杠应该都以相同的方式指向。如果您希望将其用作URL,请使用正斜杠例如 http://stackoverflow.com/posts/17775495

  2. 如果您想为浏览器提供可用于访问服务器上某些资源的URL,则此URL不能是文件路径(例如C:\xampp\htdocs\...。)而是必须是相对于您的站点根目录,或绝对URL(例如http://dropbox.com/my/file.pdf)。不要忘记,Web用户只能通过Web服务器访问服务器上的文件。