Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.09.2013, 16:48
Интересующийся
Отправить личное сообщение для p3ps Посмотреть профиль Найти все сообщения от p3ps
 
Регистрация: 20.06.2013
Сообщений: 14

firefox(16-) Многострочный комментарий в функции и методы toString(),toSource()
В функцию comm передается некая информация от сервера. Далее функция comm преобразуется в строку с помощью toString или toSource и легко обрабатывается на уровне js без ошибок, но в браузерах firefox ниже 16 версии преобразование в строку удаляет комментарии и содержимое.
Ниже привожу небольшой пример кода, который съедает комментарии.
function comm()
{
/* 
Любая информация в виде html+js без экранизации спец символов и с переносами строк.
<html>
....
</html>
*/
}
var fstring = comm.toString(); 
alert(fstring);


Кто-нибудь сталкивался с таким способом передачи информации?
Не интересует реализация на стороне сервера.
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2013, 16:49
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А к чему это извращение, пояснить можешь?
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2013, 17:03
Интересующийся
Отправить личное сообщение для p3ps Посмотреть профиль Найти все сообщения от p3ps
 
Регистрация: 20.06.2013
Сообщений: 14

Нужно обработать информацию от сервера на уровне javascript.
Нет возможности поменять что-то на сервере.
Вставка информации в js-код производится с помощью API параметра, например, через %param.
Единственный вариант избежать js ошибки - обернуть в многострочный коммент /*%param*/
Ответить с цитированием
  #4 (permalink)  
Старый 04.09.2013, 17:10
Интересующийся
Отправить личное сообщение для p3ps Посмотреть профиль Найти все сообщения от p3ps
 
Регистрация: 20.06.2013
Сообщений: 14

Для полной картины .
Есть страница где установлен тег script с src=запрос на сервер.
Сервер возвращает js шаблон, в котором %param заменяется html+js кодом.
Собственно нужно на клиентском уровне обработать эту информацию.
Вопрос не в том как обработать, а как пофиксить съедание комментариев при использовании метода toString или toSource в браузерах firefox ниже 16 версии
Ответить с цитированием
  #5 (permalink)  
Старый 04.09.2013, 19:01
Интересующийся
Отправить личное сообщение для p3ps Посмотреть профиль Найти все сообщения от p3ps
 
Регистрация: 20.06.2013
Сообщений: 14

Не вариант. На странице стоит тег script. Я не могу в script вернуть html.
Сообщение от Дзен-трансгуманист
Хотя, да, передавать данные через комментарии это звиздец.
Еще какой
Ответить с цитированием
  #6 (permalink)  
Старый 05.09.2013, 07:51
Интересующийся
Отправить личное сообщение для p3ps Посмотреть профиль Найти все сообщения от p3ps
 
Регистрация: 20.06.2013
Сообщений: 14

Не выходит. ff не записывает комментарии
function simpl()
{
/* invisible */
}
var s = document.createElement('script');
     s.text = simpl;
     document.getElementsByTagName('body')[0].appendChild(s);

На странице вижу скрипт:
<script>
function simpl() {
}
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 05.09.2013, 07:58
Интересующийся
Отправить личное сообщение для p3ps Посмотреть профиль Найти все сообщения от p3ps
 
Регистрация: 20.06.2013
Сообщений: 14

innrtHTML тоже не пройдет так как он использует строку.
То есть при подмене сервером '%param' превратится в
'<tag>...</tag>
<tag>...</tag>
<tag>...</tag>'
Получится ошибка js, а если использую DOM то режется комментарий.
Ответить с цитированием
  #8 (permalink)  
Старый 05.09.2013, 08:42
Интересующийся
Отправить личное сообщение для p3ps Посмотреть профиль Найти все сообщения от p3ps
 
Регистрация: 20.06.2013
Сообщений: 14

В общем решил исключить html из %param и убрал /**/
Ответить с цитированием
  #9 (permalink)  
Старый 05.09.2013, 16:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Интересна инфа о статистике пользователей с версией ниже 16...
09 окт. 2012 г Вышел Firefox 16
Если только чел год в сети не был, актуально наверно для части заполярных мормонов и сидельцев в гулаге

Последний раз редактировалось Deff, 05.09.2013 в 16:48.
Ответить с цитированием
  #10 (permalink)  
Старый 06.09.2013, 16:00
Интересующийся
Отправить личное сообщение для p3ps Посмотреть профиль Найти все сообщения от p3ps
 
Регистрация: 20.06.2013
Сообщений: 14

//Интересна инфа о статистике пользователей с версией ниже 16..
Цифра хорошая, тем более если сложить все версии до 16.

//Если только чел год в сети не был, актуально наверно для части заполярных мормонов и сидельцев в гулаге

Чтож, видимо вы не работали в компаниях где стоит какой-нибудь прокси и недоступны функции администратора на компьютере.
Также, хочу заметить, что ранее автоматическое обновление отключалось или было отключено по умолчанию в пиратских дистрибутивах.

//Дзен-трансгуманист
В том то и дело, что сервер этого не делает. Ждать фикса не было времени. Вот и думал как можно вывалить в тег <script> html-код, чтоб браузер не ругался. Просить пользователей ПО экранировать что-то и убирать переносы - не гуд. В общем решил просто запретить использовать html теги в данном случае.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск