1
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>
4

2 回答 2

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";
于 2013-07-21T18:27:12.410 回答
1

您需要转义反斜杠。

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

如果字符串是从 PHP 打印的,您可以使用addlashes为您完成这项工作。

$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,或者是绝对 URL (例如http://dropbox.com/my/file.pdf)。不要忘记,Web 用户只能通过 Web 服务器访问您服务器上的文件。

于 2013-07-21T18:27:44.703 回答