Soontir Fel Опубликовано 9 Марта 2010 Жалоба Поделиться Опубликовано 9 Марта 2010 Нашел интересную проблему.. Добавляю новый BBCode, допустим тег [more]{content}[/more] (ака спойлер)HTML-код, которым должен быть заменен BB-код просто до безобразия:<div onclick="obj=this.parentNode.childNodes[1].style; tmp=(obj.display!='block') ? 'block' : 'none'; obj.display=tmp;return false;"> <b>Развернуть/Свернуть</b> </div><div style="display: none;">{content}</div>сам по себе этот код работает, но при использовании тега - нет. Начал разбираться, открыл исходный код страницы, а там вот такая интерпретация кода:<div o;nclick="obj=this.parentNode.childNodes[1].style; tmp=(obj.display!='block') ? 'block' : 'none'; obj.display=tmp;return false;">...и т.д.То есть, в слове onclick первая буква "o" за каким-то хреном превращается в свой численный код. Естественно код перестает работать.Собственно, почему оно так работает и как это исправить? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 KoMePcAHT Опубликовано 9 Марта 2010 Жалоба Поделиться Опубликовано 9 Марта 2010 оно заменяется для того чтобы вас не взломали) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Soontir Fel Опубликовано 9 Марта 2010 Автор Жалоба Поделиться Опубликовано 9 Марта 2010 Ну, собственно, это я и подозревал =)А как можно в данном конкретном случае это обойти? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Ritsuka Опубликовано 9 Марта 2010 Жалоба Поделиться Опубликовано 9 Марта 2010 Soontir Fel, правильно, отключите эту защиту и дайте-ка адрес вашего форума, а то мои эксплоиты после последнего патча безопасности стали об нее ломаться А если серьезно - в тройке из коробки уже есть тег spoiler с точно таким же функционалом, как вы пытаетесь создать. Посмотрите, как он сделан. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Soontir Fel Опубликовано 9 Марта 2010 Автор Жалоба Поделиться Опубликовано 9 Марта 2010 Soontir Fel, правильно, отключите эту защиту и дайте-ка адрес вашего форума, а то мои эксплоиты после последнего патча безопасности стали об нее ломатьсяНу во-первых, я не говорил об отключении. Можно запросто написать исключение под этот конкретный случай А во-вторых, думаю, ваши эксплоиты не сильно вам помогут, ловите адрес - localhost/ipb/ Я знаю про тег spoiler, в первом посте я скинул простой код для примера, чтобы понятнее было, а вообще у тега немного другой функционал, суть не в этом. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Ritsuka Опубликовано 9 Марта 2010 Жалоба Поделиться Опубликовано 9 Марта 2010 Вот именно, что суть не в том. Суть в выносе JavaScript за пределы тела поста. На дворе уже не начало 2000-х, пора пользоваться prototype, любезно поставляемой вместе с форумом. <div class='fuck_me'> <b>Развернуть/Свернуть</b> </div><div style="display: none;">{content}</div> и скрипт в шапку:$$('.fuck_me').observe('click', yeah_ill_do); function yeah_ill_do(event) { this = event.element(); obj=this.parentNode.childNodes[1].style; tmp=(obj.display!='block') ? 'block' : 'none'; obj.display=tmp;return false; } Если не заработает - читайте доку и правьте в соответствии с ней. demvlg отреагировал на это 1 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
0 Soontir Fel Опубликовано 9 Марта 2010 Автор Жалоба Поделиться Опубликовано 9 Марта 2010 Да, пожалуй, так будет лучше всего. Спасибо за совет! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Вопрос
Soontir Fel
Нашел интересную проблему.. Добавляю новый BBCode, допустим тег [more]{content}[/more] (ака спойлер)
HTML-код, которым должен быть заменен BB-код просто до безобразия:
сам по себе этот код работает, но при использовании тега - нет. Начал разбираться, открыл исходный код страницы, а там вот такая интерпретация кода:
То есть, в слове onclick первая буква "o" за каким-то хреном превращается в свой численный код. Естественно код перестает работать.
Собственно, почему оно так работает и как это исправить?
Ссылка на комментарий
Поделиться на других сайтах
6 ответов на этот вопрос
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.