- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем здравствуйте!
Хочется разобраться в таком вопросе.
Задача:
Есть фрагмент данных в HTML, полученный с помощью XMLHttpRequest. В html-коде встречаются html-сущности вида '"', при присвоении свойству contentDocument.body.innerHTML объекта iframe этого фрагмента данных в качестве значения некоторые html-сущности автоматически преобразуются в эквивалентные им специальные символы. Например, на входе было '«Some Text«', а на выходе получаем: «Some Text». А нужно, чтобы html-сущности в ходе этой, казалось бы, простой операции таковыми бы и оставались.
Покурив мануалы и документацию по javascript, выяснил, что при присвоении значения свойству innerHTML браузер осуществляет стандартную обработку HTML-кода перед выводом на экран. Именно поэтому html-сущности и преобразуются. Поиск в Google по нашим и буржуйнетам ничего не дал. Проблема есть, у нее определенно есть решение, но четкого описания я найти не смог. Кто-нибудь может предложить решение проблемы?
может вы это хотите?
http://www.java2s.com/Code/JavaScriptReference/Javascript-Properties/innerTextSyntaxandNote.htm
А простой replace('&','&') не подойдет?
Если честно - то не помню, все ли сущности с амперсанда начинаются.
может вы это хотите?
http://www.java2s.com/Code/JavaScriptReference/Javascript-Properties/innerTextSyntaxandNote.htm
Нет, innerText - это другое. Это свойство в данном случае не подойдет. Мне нужно не текст вставить между тегами, а фрагмент HTML-кода.
Boeses_Genie добавил 26.01.2011 в 21:17
А простой replace('&','&') не подойдет?
Если честно - то не помню, все ли сущности с амперсанда начинаются.
Все начинаются с амперсанда. Но это тоже не подойдет. Подумайте, какой вывод тогда будет, что-то типа:
«Some Text. Ведь оставшуюся часть кода HTML-сущности мы не заменяем, а только амперсанд, поэтому она интерпретируется браузером как простой текст.
Пардон, тогда видимо не так задачу понял
Пардон, тогда видимо не так задачу понял
Задача в том, чтобы при вставке фрагмента html-кода во фрейм сохранить все html-сущности в неизменном виде.
Вам нужно, чтобы в коде страницы было &, а в браузере выводилось & или нужно, чтобы в коде было & и в браузере выводилось &?
Если первый вариант, то эти сущности ими же и остаются в некоторых браузерах (Файерфокс). В других же это никак не изменить.
Если второй вариант, то решение Пионера вполне подойдет. Только для замены по всем тексту, лучше использовать регулярные выражения: str.replace(/&/g, '&')
Может быть, кто-нибудь подскажет решение? Суть в том, чтобы при присвоении значения value для textarea, выдернутого из фрагмента документа, сохранялись html-сущности. Дело в том, что в WYSIWYG'ах в различных CMS (WP, Joomla!, к примеру) при переключении режима text/html html-сущности перекодируются в спецсимволы. Можно добиться, чтобы этого не происходило, см., например, CKEditor или то же в 1С Битриксе. Мне интересно понять, как это реализовано.
http://dl.dropbox.com/u/411947/entities.html
Те символы, которые не преобразовались обратно в мнемоники, придется вручную заменять. По-другому никак.
подменить « на «
подменить « на «
Посмотрите еще раз внимательно мой пример по ссылке. Некоторые сущности возвращаются не в виде мнемоник, а в виде символов. Один из них как раз и есть «