【问题标题】:Ruby escape double quotesRuby 转义双引号
【发布时间】:2017-08-22 11:40:20
【问题描述】:

谁能帮我转义双引号

 iframe_name = page.execute_script "$('#card-element').find('[name*="__privateStripeFrame"').first().attr('name')"

试过

 iframe_name = page.execute_script "$('#card-element').find('[name*=%Q[__privateStripeFrame]').first().attr('name')"

 iframe_name = page.execute_script "$('#card-element').find('[name*=\"__privateStripeFrame\"').first().attr('name')"

但是得到了

TypeError (TypeError)

【问题讨论】:

  • 最后一个选项工作得很好2.4.1 :002 > "$('#card-element').find('[name*=\"__privateStripeFrame\"').first().attr('name')" => "$('#card-element').find('[name*=\"__privateStripeFrame\"').first().attr('name')" 确保你传递了正确的参数
  • iframe_name = part 中可能有错误
  • @vladimirProp 请be nice.
  • 问题出在别的地方看看我的回答

标签: ruby-on-rails ruby


【解决方案1】:

使用heredoc,它甚至更好读:

iframe_name = page.execute_script <<JS
  $('#card-element').find('[name*="__privateStripeFrame"]').first().attr('name')
JS

【讨论】:

【解决方案2】:

https://blog.appsignal.com/2016/12/21/ruby-magic-escaping-in-ruby.html

在 Ruby 中,您可以使用反斜杠字符转义双引号。

"foo\"bar\"" => 'foo"bar"'

【讨论】:

  • 问题出在别的地方看看我的回答
【解决方案3】:

对不起,问题出在

page.execute_script

使用此方法返回 TypeError

尝试使用

 page.evaluate_script

为了存储返回值

frame_name = page.evaluate_script("$('#card-element').find('[name*=\"__privateStripeFrame\"]').first().attr('name')")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 2013-06-17
    • 2013-08-09
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多