Выход из кавычек от Переменных направляющих при использовании их для JavaScript?

У меня есть проблемы при попытке использовать переменную направляющих в коде JavaScript.

Например, я мог бы определить link_to_remote с параметром :complete => "alert('my_var');"

Если my_var = "I'm testing.", тогда код JavaScript повредится из-за одинарной кавычки, закрывающей код преждевременно. Если я пытаюсь использовать escape_javascript(my_var) так, чтобы в кавычку превратились \', это, кажется, не решает проблему.

Я заметил это, когда Вы пробуете alert('I\'m testing'); существует проблема, но если Вы делаете alert('I\\'m testing'), это работает. С тех пор escape_javascript только поворачивается ' в \', вместо \\', у кого-то есть предложение для того, как обработать это?

Спасибо! Eric

15
задан Quentin 31 January 2010 в 09:33
поделиться

1 ответ

Когда вы пытаетесь Alert («I \ m ж»); Есть проблема

обратная косания также является побегом в рубиновых струнах! Таким образом, строковая буквальная буква:

"alert('I\'m testing');"

означает строку:

alert('I'm testing');

обратная косание уходит уже до того, как JavaScript посмотрите на него. Когда вы пишете JavaScript String Listal внутри Рубиновая строковая буквальная буква, вы должны избежать побега, \\ , чтобы получить реальный \ , которые тогда В JavaScript избегайте апостроф.

Escape_javascript правильно генерирует обратную косание для JavaScript, если обратная косание было включено в его вход. Но опять же, если вы пишете строковую буквальную литерату, вы должны избежать обратной косои, чтобы получить настоящую обратную чехлу:

escape_javascript("\b")     -> this is a backspace character!
escape_javascript("\\b")    -> this is backslash-then-letter-b;
                               escaped for JavaScript literal to double-backslash-then-b.

Итак, это нормально:

"'"+escape_javascript(myvar)+"'"

. В качестве альтернативы вы можете использовать json Encoder для создания строки JavaScript в том числе окружающие цитаты.

29
ответ дан 1 December 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: