【问题标题】:Double quotes while putting the string into HTML through JavaScipt通过 JavaScript 将字符串放入 HTML 时的双引号
【发布时间】:2020-03-25 23:31:26
【问题描述】:

我在下面添加了一个小的java脚本调用sn-p:

<button type="button" class="btn btn-secondary btn-sm" title="${tasksList[val]["command"]}"
                                    onclick="bootbox.alert({
                                        size: 'large',
                                        title: 'Job Command',
                                        message: '<pre>' + this.title + '</pre>'
                                    });">
                                    Job Command
                                </button></td>

消息看起来像ssh serverdomain 但是,当我这样做时:

 console.log(tasksList[val]["command"])

它显示正确的输出,即

ssh serverdomain "java -jar /local/folder --date=20190812"

我相信最终输出中的双引号会产生一些问题。任何人都知道如何正确处理?主要关注点应该是第一个代码 sn-p 中的this.title

它适用于没有双引号的字符串。

【问题讨论】:

  • 双引号和单引号在 javasctipt 和 html 中是可以互换的......所以如果你想要嵌套引号,请使用 "blah'blah'blah"'blah"blah"blah' - 简而言之,将 "command" 更改为 'command'
  • title='${tasksList[val]["command"]}' 用单引号代替双引号 title="${tasksList[val]["command"]}"
  • Don't use inline handlers。他们有太多问题:他们有一个疯狂的范围链(这需要全局污染),他们有字符串转义问题。请改用addEventListener

标签: javascript string double-quotes bootbox


【解决方案1】:

感谢大家的回复。我意识到无论哪种方式,我都会在最后的信息中讨论“或”。由于命令不是由我给出的,因此将来可能会改变。我提出了一个我认为将有助于克服这两种情况的解决方案。请让我知道这是否可以解决问题。

<button type="button" class="btn btn-secondary btn-sm" title="${tasksList[val]["command"].replace(/\"/g, "&quot;")}"
                                    onclick="bootbox.alert({
                                        size: 'large',
                                        title: 'Job Command',
                                        message: '<pre>' + this.title + '</pre>'
                                        });">
                                    Job Command
                                </button>

【讨论】:

  • 我相信考虑到引导箱的功能,这将起作用。那么,这就是您可能拥有的所有带有双引号的场景的答案。
猜你喜欢
  • 2012-09-02
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
  • 2016-08-29
相关资源
最近更新 更多