ColdFusion / Javascript Escape Одна цитата - PullRequest
9 голосов
/ 21 марта 2012

Я знаю, что это будет что-то простое, что я просто как-то скучаю, но вот оно:

У меня есть приложение ColdFusion, где пользователь может вводить текст на нескольких экранах. У меня есть функция javascript, которая проверяет введенный текст на предмет того, что хранится в базе данных, и открывает окно подтверждения, спрашивая их, хотят ли они сохранить / отменить изменения.

Если введенный пользователем текст содержит кавычки (одинарные или двойные), JavaScript полностью умирает. Мне нужно избегать кавычек, сохраняя при этом возможность проверить, совпадает ли содержимое.

Я пробовал функции escape () и replace () (поодиночке и вместе), но ничего не работает.

Пример JavaScript:

function change_question(){
    var feedback = document.getElementById('feedback').value; //this is what the user has entered on the page
    var stored_feedback = "#trim(StoredFeedback)#"; //this is what is stored in the database; retrieved via ColdFusion

    if (feedback != stored_feedback) {
        if (confirm('You have unsaved data on the page. Do you wish to discard your changes?')) {
            //go to next page
        }
    }
    else {
            //go to next page
    }
}

Спасибо.

Ответы [ 3 ]

15 голосов
/ 21 марта 2012

Встроенный jsStringFormat отключится для JavaScript

var stored_feedback = "#jsStringFormat(StoredFeedback)#";
0 голосов
/ 21 марта 2012

Если вы ищете решение ColdFusion, вы, вероятно, захотите использовать это:

HTMLEditFormat(string)

HTML-экранированная строковая строка. Возвращаемые символы удаляются; символы перевода строки сохраняются. Символы со специальным значением в HTML преобразуются в объекты символов HTML, такие как>.

0 голосов
/ 21 марта 2012

Я не знаю ColdFusion, но согласно документам:

var stored_feedback = #SerializeJSON( trim(StoredFeedback) )#; 

I думаю вам не нужно явно добавлять кавычки, так как строка при сериализации в JSONв конечном итоге двойные кавычки.Опять же, я не могу проверить это сам.

...