为什么完全相同的JavaScript代码会产生两个不同的结果?

时间:2019-04-03 21:41:21

标签: javascript string

我有一段JavaScript代码,尝试用字符串替换图像的src属性。该字符串是从服务器返回的,其中包含反斜杠,因此在更改映像的src属性之前,我将反斜杠替换为正斜杠。

这是一个问题,因为此字符串已保存到服务器上并在以后读取,并且因为它以反斜杠保存,所以会引发“ SyntaxError:无效的Unicode转义序列”

同一代码在以下方面的行为有所不同: 1. 2个不同的实时网站(我已将代码部署到2个不同的IIS网站和应用程序池)

我在相同的浏览器,相同的版本上测试了这两个网站。

  1. 粘贴在控制台中,而不是在浏览器中运行。

当我尝试将代码粘贴到控制台中时,它可以完美工作,src属性将使用正斜杠进行更新。但是,当我让代码自行运行时,src属性将使用反斜杠进行更新。

代码如下

image.src = frontEndPath.replace(/\\/g, "/");

其中frontEndPath类似于"\images\uploads\myimage.jpg"

请注意,当我在控制台中运行frontEndPath.replace(/\\/g, "/");时,它会按预期运行,用正斜杠替换反斜杠。

我希望image.src = frontEndPath.replace(/\\/g, "/");应该将图片的src属性更改为带有正斜杠的字符串。

希望让JavaScript持续运行代码不是很多:)

以下是上下文中的代码段:

xhr.onload = function () {
  var data = JSON.parse(xhr.response);
  if (xhr.status >= 200 && xhr.status < 300) {
    if (data.success) {
      image.src = data.frontEndPath.replace(/\\/g, "/");
    }
  }
};

将包含图像的html字符串保存到数据库中后,SyntaxError: Invalid Unicode escape sequence发生在DB中,然后再次读取,因为它在字符串中看到\ u。

0 个答案:

没有答案