Phemmer
|
Сообщение #342
20 августа 2014 в 09:19
|
Супермен
71 |
Котанчик писал(а): Как можно перейти к диалогу с конкретным человеком, не отправляя ему сообщение? Это давно в klavotools есть
|
agile
|
Сообщение #343
20 августа 2014 в 09:40
|
Новичок
37 |
_Lazer_ писал(а): У меня правда скрипт почему-то не работает, хотя вставленный код унча сработал. А вот это уже интересно. Какой браузер, версия? Как запускали скрипт (вручную, или через какое-то дополнение браузера)? Phemmer, еще раз по поводу проблемы с широкоформатным стилем профиля — что должно произойти с картинкой на вот таком конкретном примере: ? Она должна пропорционально сресайзиться по высоте, или что? Обновил скрипт для подгрузки изображений ( установочная ссылка). - Исправлены ссылки для случая, когда изображение изначально должно быть «кликабельным»: [![изображение](http://klavogonki.ru/img/logo-5.gif)](http://klavogonki.ru/forum/)
- Добавлен MutationObserver для отслеживания изменений в DOM журнала
Последнее должно было исправить ошибки с неподгружающимися изображениями и скрытыми комментариями, но на деле callback MutationObserver-а по неизвестной мне причине отрабатывает не всегда, поэтому оставил и свой старый «костыль» с задержкой. Если у кого-то есть идеи, как можно лучше дожидаться окончания работы с DOM другого скрипта — просьба отозваться :) И если у кого-то и с этой версией наблюдается проблема с непрогружающимися изображениями — тоже просьба отписаться. Последний раз отредактировано 22 августа 2014 в 14:11 пользователем agile
|
Phemmer
|
Сообщение #344
20 августа 2014 в 11:21
|
Супермен
71 |
agile, с этой версией уже намного лучше с отображением. Собственно, с широкоформатным стилем это не проблема, просто вот какое поведение я вижу оптимальным (для любой ширины стиля): В лентах максимальную высоту картинки ограничить 500 пикселей, подобно как на этом форуме max-height: 800px, а все что больше - уменьшается масштабированием. Все что меньше - отображать 1:1 как есть. Ну а макс. ширину не ограничивать (ограничивается лишь шириной стиля профиля, как сейачс). Это сделать только в лентах, а в раскрытых записях оставить как есть без ограничений. То есть чтобы очень большие картинки сразу в огромном размере не раскрывались, не занимали всю страницу - это тем более чаще заметно чем "шире" стиль профиля. Потом, этим картинкам, которые более 500 по высоте и будут уменьшены, сделать кликабельность, чтобы прямо в этой ленте они разворачивались по клику в полный размер. (ну если невозможно такое реализовать, то уж невозможно, вопросов нет) А общую кликабельность может имеет смысл вообще убрать? Чтобы отличать картинки со ссылкой или которые можно увеличить от обычных. Обычные же можно открыть в новом окне через правую кнопку мыши либо простым перетаскиванием ее на панель вкладок.
|
agile
|
Сообщение #345
20 августа 2014 в 11:45
|
Новичок
37 |
Phemmer, спасибо за подробное объяснение, хорошо, добавлю ограничение по высоте в 500px и кликабельность у больших изображений, которая будет это ограничение убирать :) Phemmer писал(а): А общую кликабельность может имеет смысл вообще убрать? Чтобы отличать картинки со ссылкой или которые можно увеличить от обычных. Обычные же можно открыть в новом окне через правую кнопку мыши либо простым перетаскиванием ее на панель вкладок. Да, согласен, так будет лучше, переделаю :)
|
agile
|
Сообщение #346
20 августа 2014 в 14:35
|
Новичок
37 |
Внес очередные изменения в код скрипта для подгрузки изображений: - Убрана кликабельность у простых изображений, которые не «обернуты» ссылками
- Добавлено ограничение по высоте для изображений в 500px
- Смасштабированные большие изображения по высоте можно увеличить по клику (и обратно уменьшить по повторному клику)
|
dxlins
|
Сообщение #347
20 августа 2014 в 15:55
|
Новичок
1 |
Последний раз отредактировано 19 декабря 2014 в 10:33 пользователем dxlins
|
Phemmer
|
Сообщение #348
20 августа 2014 в 16:26
|
Супермен
71 |
agile, отличная работа! Далее мелкие замечания. С масштабированием возникает визуальный эффект: сначала большие картинки на мгновение показываются в полном размере, затем уменьшаются как положено. В комментариях к записям, раскрытых по облачку или решетке #, то есть не в лентах, - в этих комментариях можно бы отображать полноразмерно по умолчанию, так как запись уже целенаправленно открыта. Картинки уже почти всегда отображаются. Заметил что по «костылю» вместо MutationObserver-а картинки загружаются если обновить страницу или нажать энтер в строке адреса. Но время 1500 можно уменьшить намного и они все также отображаются, в отличие от прошлой версии скрипта. Но посмотрим что скажут те у кого медленнее компьютер или интернет. И печаль - скрипт не работает на старом движке хрома WebKit, на котором все еще держится хоть устаревший, но все еще функциональный браузер CoolNovo. :(
|
agile
|
Сообщение #349
20 августа 2014 в 16:56
|
Новичок
37 |
dxlins писал(а): А вот в Firefox 27.0 - работать не хочет. С какими-нибудь аддонами конфликтовать не может? Связь напрямую. Отключены Adblock, Image like Opera, NoScript. Вроде, ничего блокирующего больше нет... Так-то вроде не должен. В консоли браузера ошибок JavaScript нет? (за исключением тех, что и без всяких пользовательских скриптов туда сыплются) Phemmer писал(а): С масштабированием возникает визуальный эффект: сначала большие картинки на мгновение показываются в полном размере, затем уменьшаются как положено. Хорошо, исправлю (сделал так для простоты кода, думал, это будет незаметно :) ) Phemmer писал(а): В комментариях к записям, раскрытых по облачку или решетке #, то есть не в лентах, - в этих комментариях можно бы отображать полноразмерно по умолчанию, так как запись уже целенаправленно открыта. Да, исправлю, забыл про это :) Phemmer писал(а): Картинки уже почти всегда отображаются. Заметил что по «костылю» вместо MutationObserver-а картинки загружаются если обновить страницу или нажать энтер в строке адреса. Но время 1500 можно уменьшить намного и они все также отображаются, в отличие от прошлой версии скрипта. В прошлой был один таймаут, а теперь таймер :( Т.е. главная функция теперь вызывается не один раз, а каждые 1.5 секунды. Да, эту задержку можно снизить хоть до 100 мс, вопрос только в том, не скажется ли все это безобразие в конечном итоге на производительности всего приложения, которое и без этого не очень быстрое? (хоть это и маловероятно, потому что функция в основном отрабатывает «вхолостую» — делается выборка элементов по селектору, в результате возвращается пустой список, и дальше цикла ничего не происходит). Впрочем, voidmain предложил вообще альтернативный подход к замене текстовых ссылок на изображения — пропатчить шаблоны самого AngularJS, убрав в них ограничения Markdown (даже привел пример кода, который частично это делает, за что ему большое спасибо :) ). Но с заменой шаблона для комментариев тут не все так просто, потому что он подгружается директивой ng:include — кто-нибудь из разбирающихся в этом фреймворке может подсказать, возможен ли такой monkey patch «извне»? Phemmer писал(а): И печаль - скрипт не работает на старом движке хрома WebKit, на котором все еще держится хоть устаревший, но все еще функциональный браузер CoolNovo. :( Предположительно в нем либо отсутствует реализация MutationObserver, или она есть, но нужно использовать ее «префиксную» версию: http://caniuse.com/#feat=mutationobserver — не можете сказать, какая там версия движка WebKit? Последний раз отредактировано 20 августа 2014 в 17:12 пользователем agile
|
Phemmer
|
Сообщение #350
20 августа 2014 в 17:13
|
Супермен
71 |
agile писал(а): а теперь таймер :( Т.е. главная функция теперь вызывается не один раз, а каждые 1.5 секунды. ага. теперь понятно. agile писал(а): не можете сказать, какая там версия движка WebKit? вроде бы 27. (на базе Chromium 27.0.1453.110)
|
agile
|
Сообщение #351
20 августа 2014 в 17:40
|
Новичок
37 |
dxlins писал(а): ЗЫ Отключено всё, кроме Greasemonkey. Тестовый алерт выводится: Картинки и не думают! :) скрытый текст… «Тестовый алерт» — это сейчас был тонкий намек на (возможно) существующую у меня XSS-уязвимость, или же просто «тестовый алерт» из консоли? :) Так ошибок в консоли браузера никаких нет? Phemmer писал(а): вроде бы 27. (на базе Chromium 27.0.1453.110) Ясно, ну, для этой версии, вроде бы, все должно работать. Тогда такой же вопрос: в консоли браузера (в средствах разработчика) нет никаких ошибок, которые можно было бы связать с этим скриптом? Последний раз отредактировано 20 августа 2014 в 17:45 пользователем agile
|
Phemmer
|
Сообщение #352
20 августа 2014 в 17:58
|
Супермен
71 |
agile писал(а): нет никаких ошибок, которые можно было бы связать с этим скриптом? нет никаких
|
dxlins
|
Сообщение #353
20 августа 2014 в 18:14
|
Новичок
1 |
Последний раз отредактировано 19 декабря 2014 в 10:33 пользователем dxlins
|
agile
|
Сообщение #354
20 августа 2014 в 18:23
|
Новичок
37 |
Phemmer писал(а): нет никаких Добавил в код отладочные вызовы console.info — что видно в консоли? dxlins писал(а): Ну, по CSS, конечно, шквал ошибок... Но картинок нет. Неусыпно бережёт 27-я Лиса мою безопасность, не иначе... Такой же вопрос, как и к Phemmer :) (кстати, можно для удобства установить FireBug, если он еще не установлен) dxlins писал(а): А "тестовый алерт" - это тонкий намёк на то, что Greasmonkey, вообще, включён. Ясно :) Просто там действительно была XSS-дыра — двойная кавычка в описании картинки не эскейпилась (но «докрутить» в силу своей нубости не сумел)
|
dxlins
|
Сообщение #355
20 августа 2014 в 18:41
|
Новичок
1 |
Последний раз отредактировано 19 декабря 2014 в 10:33 пользователем dxlins
|
agile
|
Сообщение #356
20 августа 2014 в 18:51
|
Новичок
37 |
dxlins писал(а): Проблему нашёл. Просто всё вручную обновляется, как обычно... Greasemonkey оказался старее, чем надо. После обновления работает и 27-я, и старше. Очень странно, что со старой версией Greasemonkey скрипт не работал :) Писал его с оглядкой на код других скриптов, и единственное различие только в том, что у меня он не «инжектится» в отдельный <script> Последний раз отредактировано 20 августа 2014 в 18:55 пользователем agile
|
Phemmer
|
Сообщение #357
20 августа 2014 в 18:51
|
Супермен
71 |
agile писал(а): Добавил в код отладочные вызовы console.info — что видно в консоли? В 1.1.1 по-прежнему в консоли пусто
|
agile
|
Сообщение #358
20 августа 2014 в 18:55
|
Новичок
37 |
Phemmer писал(а): В 1.1.1 по-прежнему в консоли пусто Чем дальше — тем интересней :) Но давайте все это перенесем в ЛС, чтобы не захламлять эту тему? :)
|
dxlins
|
Сообщение #359
20 августа 2014 в 19:22
|
Новичок
1 |
Последний раз отредактировано 19 декабря 2014 в 10:33 пользователем dxlins
|
ТОМА-АТОМНАЯ
|
Сообщение #360
20 августа 2014 в 21:28
|
Организатор событий
116 |
Спасибо, скрипт прекрасно работает, просто огромное спасибо за приятный подарок пользователям.
|
dxlins
|
Сообщение #361
20 августа 2014 в 21:58
|
Новичок
1 |
Последний раз отредактировано 19 декабря 2014 в 10:33 пользователем dxlins
|