在传递给下一个函数之前转义 Javascript 调用

Escaping Javascript call before passing onto next function

本文关键字:转义 Javascript 调用 函数 下一个      更新时间:2023-09-26

我有一个正在传递的HTML块,但是在该块中,我需要进行Javascript调用以使用I18n库插入正确的字符串。

$('<div class="modal-dialog"> '
    <div class="modal-content"> '
      <div class="modal-body"> '
        I18n.t("product.loading")<br> '
      </div>
    <div>
  </div>')
  .appendTo($(document.body))

我不知道如何逃脱I18n.t电话。现在,显示文本"I18n.t("product.load")",而相反,我希望Javascript调用返回字符串的翻译版本,例如"加载"(如果是英文配置文件)。我怎样才能使Javascript被转义或以某种方式运行?

您必须使用字符串加法,如下所示:

'<div class="modal-body">' + I18n.t("product.loading") + '<br>' + ...

正如你已经发现的那样,你不能将javascript直接插入字符串定义的中间并期望它被评估。 它不会,因为它只是字符串的一部分。 因此,您将它全部转换为一个 JavaScript 表达式,该表达式是一个字符串加上函数调用的返回结果加上另一个字符串。