2015-06-11 3 views
0

я должен назвать следующие функции яваскриптавызвать функцию одинарные кавычки

function changeExampleField(firstValue, changeId, field, wordToChange) 
{ 
var exampleTxtElem = document.getElementById(changeId); 
var newTxt = field.value; 
exampleTxtElem.innerHTML = firstValue.replace(wordToChange, newTxt); 
} 

Проблема в это, я получаю значение «firstValue» из базы данных, это строка и может содержать одинарные кавычки. Например:

я получаю значение из базы данных, которая работает

<input class="" type="text" name="text_label.test_virus_connection" value="test" size="50" maxlength="50" id="a_text_label.test_virus_connection" onkeyup="changeExampleField('Verbindung testen', 'example_label.test_virus_connection', this, 'test')" onFocus="dispHelp('')"> 

Но я могу получить значения из базы данных, которая DonT работает

<input class="" type="text" name="text_pass_sprachtest.label.execute.successfull" value="test" size="50" maxlength="50" id="a_text_pass_sprachtest.label.execute.successfull" onkeyup="changeExampleField('Bewerbung(en) erfolgreich auf 'Sprachtest(s) bestanden' gesetzt!', 'example_pass_sprachtest.label.execute.successfull', this, 'test')" onFocus="dispHelp('')"> 

Мой вопрос: есть ли другой способ для вызова функции (например, со свойствами или так)? Или другой способ решить эту проблему?

+0

Самым простым решением было бы использовать обратную косую черту. Поэтому вместо '' ', вы должны использовать' \ ''- но только для одинарных кавычек внутри одинарных кавычек. – alesc

+0

Это одинарные кавычки, а не отметки. И решение здесь заключается в том, чтобы избежать ваших данных правильно, прежде чем использовать его в HTML. Это необходимо как для использования данных, так и для предотвращения отраженной атаки XSS. –

+2

Прочитайте эту тему: [Одинарная кавычка усиков] [1] [1]: http://stackoverflow.com/questions/8744315/single-quote-escape-in-javascript-function-parameters –

ответ

0

Вы должны сделать что-либо из этого

заменить внешние одиночные кавычки с кавычками

"Bewerbung (ен) erfolgreich Ауф 'Sprachtest (s) bestanden' gesetzt!"

или избежать одиночные кавычки в середине

'Bewerbung (ен) erfolgreich Ауф \' Sprachtest (ы) bestanden \ 'gesetzt!

, если вы не делаете тыс так или иначе, то его не рассматривается как строка

Смежные вопросы