логин: 
Другие записи за это число:
2010/10/29_01 - гении программирования
<< предыдущая заметкаследующая заметка >>
29 октября 2010
победил подгрузку комментариев с якорем

Если в заметке установлена опция «комментарии показывать: кнопку», то простыня комментариев при загрузке страницы не отображается, только кнопка:
http://lleo.aha.ru/dnevnik/2010/09/06.html
Но если посетитель открывает ссылку с якорем на конкретный комментарий (эту ссылку можно взять, наведя мышку на дату комментария в его правом углу):
http://lleo.aha.ru/dnevnik/2010/09/06.html#67936
то теперь движок распознает это, сам подгружает простыню комментариев и пинает браузер туда, к нужному.

В общем-то ничего сложного, но потребовалось кое-что модернизировать неочевидное в разных местах. Ведь якорь из php не виден — браузер его не передает серверу, только из js можно его выцепить.

UPD:

Сделал возможность разрешить удалять собственные комментарии — переменная в конфиге появилась. Ну, мало ли, кто захочет. Я так считаю: сморозил глупость — терпи.

Как мы помним, отредактировать собственный комментарий посетитель (если он не админ) может только в течение $time_edit_sec (у меня — 15 минут). Сделал сейчас красивую тикалку секунд. Когда время истечет — пропадает кнопка отправки и выдается сообщение. Сама форма не закрывается — мало ли, кто захочет себе в блокнотик свой непринятый шедевр сохранить.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows IE
0
0
D.iK.iJ
Ой, а как вы его вытащили?
Linux Firefox
 Москва
0
0
Кого вытащил?
Windows IE
0
0
D.iK.iJ
Ну, якорь при помощи Java script ?
Linux Firefox
 Москва
0
0
У браузера есть переменная document.location.href - сервер о ней не знает, но JS ее видит целиком. Осталось только выяснить, не заканчивается ли она номером после решетки: #123, если да - то запустить процедуру подгрузки комментариев, а затем еще раз присвоить document.location.href ее же собственное значение, чтобы браузер сделал прыжок.
Windows Opera
0
0
[email protected] (xtmb.info)
Эээ. location.hash же.
Nokia-E90 Safari
 Москва
0
0
Leonid Kaganov
В каком смысле? Что это?
Windows Opera
0
0
[email protected] (xtmb.info)

javascript:prompt('location.hash',location.hash);void(0);
Linux Firefox
 Москва
0
0
Э-э-э... пытаюсь понять. И как я должен поступить-то?
Убедиться каким-то образом, что это опера, и... что-то сделать с location.hash?
Windows Opera
0
0
[email protected] (xtmb.info)
В этой ветке я про var c=document.location.href; if(1*c.replace(/^.*?#(\\d+)$/g,'$1')) говорил - можно же сразу к location.hash обращаться.
А вот как включить прокрутку в опере - пока не знаю.
Linux Firefox
 Москва
0
0
Ну, то есть, как в опере включить прокрутку, мы все равно не знаем? Тогда какой смысл менять что-то?
Linux Safari Chrome
0
0
vvzvlad (#528146)
попробуем..
Linux Safari Chrome
0
0
vvzvlad (#528146)
так, глюк?
Linux Safari Chrome
0
0
vvzvlad (#528146)
все, понял. глюк небольшой, но заметный. при отправке комментария(страница же не перегружается) новый комментарий встает перед предыдущим.
сохраняется до перезагрузки страницы

вот.

верхние комменты можно удалить
Linux Firefox
 Москва
0
0
Ну... Оно так всегда было. Не знаю пока, как с этим бороться, да и надо ли?
Linux Safari Chrome
0
0
vvzvlad (#528146)
да не было. заметный глюк же, как его можно не увидеть?
Linux Firefox
 Москва
0
0
Было, было. Я там не правил ничего.
Windows Opera
0
0
vedmezhatko
Что-то у меня Опера не хочет скакать к комментарию (но простыню разворачивает).
Nokia-E90 Safari
 Москва
0
0
Leonid Kaganov
Думаю, если кэш обновить, заработает. Там скрипты обновились.
Windows Opera
0
0
vedmezhatko
Неа, не помогло. :(
Windows Firefox
0
0
lleo.me/[email protected]Артем Павлов
Это же, вроде, у Оперы глюк такой - она не реагирует на смену location.href.
Windows Opera
0
0
[email protected] (xtmb.info)
А вот был бы жквери!..
Кстати, это фича. Наверно.
Nokia-E90 Safari
 Москва
0
0
Leonid Kaganov
А что жквери? Приструнит оперу?
Windows Opera
0
0
[email protected] (xtmb.info)
Одной строчкой включит плавненькую прокрутку окна во всех браузерах.
Windows Opera
0
0
[email protected] (xtmb.info)
Ручное тыканье по адресной строке работает, javascript:location.href=location.href;void(0); тоже. А вот автоматика почему-то нет.
Linux Safari Chrome
0
0
отсчет времени вижу, а удаления не вижу. странно
Linux Firefox
 Москва
0
0
А что происходит, когда доходит до 00:00?

всего комментариев: 26

<< предыдущая заметка следующая заметка >>