Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пропадают слэши в javascript при передаче значения строки из Java (https://javascript.ru/forum/misc/37246-propadayut-slehshi-v-javascript-pri-peredache-znacheniya-stroki-iz-java.html)

bormotovk 12.04.2013 17:00

Пропадают слэши в javascript при передаче значения строки из Java
 
Получаю с помощью Java в Javascript код вот таким образом :
var bootstrapHomeName = "<%=getBootstrapHomeName()%>";

передаю строку, но в ней пропадают все обратные слэши, кавычки и прочие спец. символы. То есть в переменной bootstrapHomeName лежит значение 1234, когда как функция getBootstrapHomeName() возвращает строку 1\2\3\4. Не знаю в чем дело, помогите разобраться. Может парсер мешает?

Ervin 12.04.2013 17:27

Если твоя JPS функция, возвращает "1\2\3\4", то в javascript переменной будет 1 + промониторинные 234, в то время как вывод этой переменной даст 1. Чтобы вывести все просто нужно промониторить \.

console.log("1\\2\\3\\4"); \\ 1\2\3\3

danik.js 12.04.2013 17:35

Цитата:

Сообщение от Ervin
промониторить

Может заэкранировать? :p

Ervin 12.04.2013 17:40

Цитата:

Сообщение от danik.js (Сообщение 245824)
Может заэкранировать? :p


Совершенно верно! :lol:

bormotovk 12.04.2013 18:26

Цитата:

Сообщение от Ervin (Сообщение 245822)
Если твоя JPS функция, возвращает "1\2\3\4", то в javascript переменной будет 1 + промониторинные 234, в то время как вывод этой переменной даст 1. Чтобы вывести все просто нужно промониторить \.

console.log("1\\2\\3\\4"); \\ 1\2\3\3

К сожалению это не так. =( Вывод действительно такой, какой я написал. А вот вывод - 1\\2\\3\\4 именно 1
Хотя в файл записывает все нормально 1\\2\\3\\4 - хотя в файл всегда записывается нормально, отображение только на страничке неправильное.
Приведу всю функцию.

Вот поле ввода
<td><input name="bootstrapHomeInput" id="bootstrapHomeInput" type="text" size="40" placeholder=''/></td>



function showCurrentSettings (atributName) {
		var  bootstrapHomeName = "<%=getBootstrapHomeName()%>";
		console.log(bootstrapHomeName);
document.getElementById("bootstrapHomeInput").setAttribute( atributName, bootstrapHomeName );
}
showCurrentSettings ("placeholder");

danik.js 12.04.2013 19:20

Проведем эксперимент.

<td><input name="bootstrapHomeInput" id="bootstrapHomeInput" type="text" size="40" placeholder=''/></td>
<script>
function showCurrentSettings (atributName) {
        var  bootstrapHomeName = "1\\2\\3\\4";
        console.log(bootstrapHomeName);
document.getElementById("bootstrapHomeInput").setAttribute( atributName, bootstrapHomeName );
}
showCurrentSettings ("placeholder");
</script>

Таким образом мы выяснили что bormotovk совершенно не прав (1) и к тому же упорно это отрицает (2). Впрочем его проблемы )


Часовой пояс GMT +3, время: 12:47.