Drupal неправильно экранирует теги в JavaScript - PullRequest
1 голос
/ 12 марта 2010

Я установил drupal-6.16. Я применил патч из поста http://drupal.org/node/222926#comment-930745. Это работает правильно в простых случаях. Но следующий код счетчика обрабатывается неправильно, и счетчик теперь отображается на странице после друпала.

Drupal изменяет строку

"alt='1Gb.ua counter'><\/a>")</script>

до

"alt='1Gb.ua counter' />&lt;\/a>")</a></script>

Полный код счетчика:

<br><br>
Text
<br><br>
<!-- counter.1Gb.ua -->
<script language="javascript" type="text/javascript">
cgb_js="1.0"; cgb_r=""+Math.random()+"&r="+
escape(document.referrer)+"&pg="+
escape(window.location.href);
document.cookie="rqbct=1; path=/"; cgb_r+="&c="+
(document.cookie?"Y":"N");
</script><script language="javascript1.1" type="text/javascript">
cgb_js="1.1";cgb_r+="&j="+
(navigator.javaEnabled()?"Y":"N")</script>
<script language="javascript1.2" type="text/javascript">
cgb_js="1.2"; cgb_r+="&wh="+screen.width+
'x'+screen.height+"&px="+
(((navigator.appName.substring(0,3)=="Mic"))?
screen.colorDepth:screen.pixelDepth)</script>
<script language="javascript1.3" type="text/javascript">
cgb_js="1.3"</script>
<script language="javascript" 
type="text/javascript">cgb_r+="&js="+cgb_js; 
document.write("<a href='http://www.1Gb.ua?cnt=1416'>"+
"<img src='http://counter.1Gb.ua/cnt.aspx?"+
"u=1416&"+cgb_r+
"&' border=0 width=88 height=31 "+
"alt='1Gb.ua counter'><\/a>")</script>
<noscript><a href='http://www.1Gb.ua?cnt=1416'>
<img src="http://counter.1Gb.ua/cnt.aspx?u=1416" 
border=0 width="88" height="31" alt="1Gb.ua counter"></a>
</noscript>
<!-- /counter.1Gb.ua -->

У кого-нибудь работает этот код?

Как исправить Drupal для правильной обработки этого кода?

Другие предложения приветствуются.

EDIT:

Удаление комментариев не решает проблему.

Ответы [ 4 ]

1 голос
/ 12 марта 2010

Проблема, которую вы описываете, только когда вы используете корректор HTML с комментариями HTML. Быстрое решение - удалить комментарии или отключить корректор HTML.

Было бы замечательно, если бы корректор HTML мог обрабатывать комментарии HTML, но комментарии HTML IMO не относятся к содержимому узла и т. Д. Если вы планируете делать разметку настолько сложной и особенной, что для нее нужны комментарии, это индикатор что оно принадлежит вашей теме, а не содержанию.

В вашем случае вы хотите добавить немного JavaScript. Для этого в Drupal есть функция drupal_add_js, которая не только добавит скрипт, но и с настройками вы можете кешировать и минимизировать его для производственной среды. Это повысит производительность, и в целом вы захотите добавить js на сайт Drupal.

Поскольку вы только пробуете Drupal, самое быстрое решение для вас сейчас - просто удалить комментарии HTML, и все будет в порядке. Но если вы хотите сделать что-то предназначенное для живого сайта, вы должны проверить drupal_add_js.

Настройки входных фильтров можно найти в admin / settings / filters, когда вы редактируете или создаете новый фильтр, здесь вы можете решить, какие роли могут его использовать и следует ли применять корректор HTML.

0 голосов
/ 28 апреля 2012

Я получил эту проблему случайно в Drupal6 для всего контента, с или без включенного редактора Filtered, Full HTML или PHP.

Обнаружено, что виновником является флаг magic_quotes_gpc в PHP.

К счастью, я смог легко отключить его в php.ini, что решило проблему всех видов странных побегов.

0 голосов
/ 04 ноября 2010

Включение модуля фильтра PHP и установка формата ввода в PHP решили эту проблему для меня.

0 голосов
/ 13 марта 2010

Исправлено в drupal 7.x. Подробности здесь .

...