Pull to refresh

Comments 41

Если свой сервер на этом же компе можно PHP подгружать, просто удобнее будет. Конечно, многие не согласятся, но это личное мнение. У каждого свои извращения.
О. У. ЩИТ.
В соседних тредах — машин лернинг, биг дата, хайлоады… Чему может научить студент? Зачем его статья на Хабре? Кто-нибудь объяснит человеку разницу между профессиональными ресурсами и персональными блогами?

Статьи надо вычитывать и корректировать, а не просто писать и постить. Огромное количество пунктуационных ошибок, странное построение фраз. Поток сознания, а не статья.
И да, 80% вашей статьи – сомнительного рода листинги, которые под силу написать (и вы сами это доказываете) даже самому ленивому студенту. Ладно бы ещё написать, а не надергать со Stack Overflow…
… сказал человек без единой публикации.

А по мне так, девчонка нормально написала! Учитывая, что на Хабре есть и студенты, и новички, и сомневающиеся, именно такие вот посты могут вдохновить и копать чужой код, и писать на Хабр. Обратите внимание, сколько здравой самоиронии в статье, как бережно написано про ревью кода. А ошибки — «оно, чай, не филолух», обтешется. Кстати, на Хабре принято про ошибки писать в личку. ЩИТ и МАТ вам :-)
Хм, Вы факт несогласия с литературным критиками тоже будете выражать в подобном ключе?
Я на Хабр писал в 2009 году подобное. В момент когда понял, что публикации написаны в таком же ключе как и эта («по-детски») я их скрыл в черновики.

В любом случае, Ваше мнение имеет право на жизнь. Хотя на мой взгляд, если ЭТА статья показалась Вам полезной и увлекательной, то Вы что-то не то читаете в интернете…
Я опубликовала статью в песочницу, думала что её увидят только те, кто специально на это подписан. Так что сорян, что-то проглядела.

Ну а по поводу надергать куски — этому есть синоним: интеграция компонентов. Это с какой стороны посмотреть, иногда это плюс, а не минус.

Нормальная статья для тех кто боится учиться, копать и искать. Показательный и полезный пример. Спасибо. Новичкам в пример буду ставить. Написал ещё один человек без единой публикации.

Хром-плагин это хорошо, но разве всякие Tampermonkey не специально для таких задач существуют? А в качестве бонуса все работало бы в любом браузере для которого есть подобный плагин.
Я не настоящий сварщик, только учусь.

Спасибо за подсказку, посмотрю подробнее в эту сторону.

Для FF это плагины Spidermonkey и Stylish. Когда-то для IE это был Trixie, а для Safari NinjaKit, возможно сейчас уже другие. Плюс есть сайты вроде https://greasyfork.org/ для обмена модами между юзерами.

UFO just landed and posted this here
Озвучьте ваши самые смелые фантазии.

Пользуюсь лисом. Намёк думаю ясен.
Быстро просмотрев на лису, вижу что API очень похожи.

Осенью возьмусь, сейчас смены по 12-ть часов. Боюсь что не осилю при таком графике.
Риторически, сам с собою разговариваю.

Как известно, при работе в Chrome на общем устройстве каждый пользователь может сохранять свои настройки, закладки и темы.
Возможна ли надстройка над сайтом «для своих», обмен информацией между ними.
C:\Users\YOURUSER\AppData\Local\Google\Chrome\Application\chrome.exe --user-data-dir=«D:\PROFILEDIR»
http://www.davidledgerwood.net/2011/10/managing-multiple-google-chrome.html?m=1
Как говорит наш завлаб, ничего невозможного нету, вопрос времени и ресурсов.

Идея нравиться, примерно как я это вижу:

При навигации на сайт, по url для корневого домена или по иерархии фолдеров проверяется на наличие комментариев.

Комментарий может быть помечен как публичный или зашифрованный (в этом случае проверяем есть ли у нас ключ для расшифровки).

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

Только нужен ресурс, центральный сервер или дисковери сервис в случае р2р.

В общем потестировал, поместил в одну общую директорию с php.
Гораздо проще получается, редактором меняем ссылки, редактируем php-редактором саму страничку popup.html и всё без всяких подгрузок, аяксов. Редактируем сохраняем, нажимаем на иконку браузера и смотрим изменения.

В целом статья понравилась.
Листинги не читал, но пару фраз на русском утащил к себе в копилку.
И на хероку мне это надо?

Хорошая статья) Весёлая. Правдо не несёт информационной нагрузки для большей часть здешней аудитории, но почему бы не развеяться на ит шную тему в четверг, ну для меня уже пятница правда?)


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


Но вот мне не понятно зачем задержка там вообще существует задержка исполнения кода на 1 секунду и на 5? И ещё, обычно всякие там приложухи не имеют доступа к "системным" вкладкам типа chrome://ext..., //hist… и потобным, ибо их туда обычно не пускает для инжекта система безопасности. У вас же на таких страницах нету ограничений в интерфейсе, соответственно некоторое чувство вседозволенности присутствует, а такого быть не должно, ибо браузер всё же ставит в рамки.


На счёт юзерврендли интерфейса можно попросить вставить тот же codemirror, чтобы код было удобнее писать, потом уже к этому всему можно и темизацию подключить и тд и тп. Ещё есть некоторые придирки, по например созданию новых "действий" и одной единственной кнопке "сохранить" на всю страницу) Но думаю, что ну нафиг.

Согласна, трудно придумать что-то новое. Всё уже было сделано много раз и чем дальше тем труднее и труднее быть оригинальной.

Задержка на 1 или 5 секунд была сделана для случаев когда подгружается дополнительный контент по AJAX.

Можно конечно в пользовательский скрипт добавлять проверки, но в большинстве случаев использование задержки будет достаточно и позволит сделать скрипт сильно проще.

Пользовательский интерфейс, да, это больной вопрос. Чувство прекрасного у меня не из того места растёт.

Не согласен с задержкой. Причём от слова совсем.
У Вас есть возможность запускать этот код когда угодно, так почему бы не сделать проверку на весь этот дополнительный контент? Да и кстати, от чего считается эта 1/5 секунд? От начала жизни страницы или от контентлоада?

Согласно документации:

«runAt: The soonest that the JavaScript or CSS will be injected into the tab. Defaults to „document_idle“.»

дополниетельные опции: «document_start» и «document_end».

Вопрос по поводу согласия с задержкой должен в первую очередь исходить из позиционирования по целевой аудитории.

Если его пользователи это те кому надо внедрить пару-тройку строчек на JS чтобы сделать быстрый фикс чего-то в пользовательском интерфейсе, то с моей точки зрения им важнее простота и эти две опции ее предоставляют.

Никто не мешает их просто игнорировать, если хочется иметь полный контроль.

Игнорировать… Ну тогда можно игнорировать пол мира. В любом случае сами по себе эти задержки проблему не решают, потому что у меня вот хабр сейчас с моим интернетом загружался секунд 10. Это нельзя подсовывать пользователю как решение. Его нужно хотя бы предупреждением обособлять, что "такой вот хак сработает невсегда".

Спасибо за совет.

Предупреждение пойдет по графе улучшения UI, но довольно незначительное.
Завлаба скорее не зачтёт как отдельный пункт, придется что-то еще придумывать.

На счёт ui можно придумать что-то более глобальное, чем есть сейчас, например плиточки. Вот только они уже используются в material версии chrome://ext… Но сама их реализация с кнокаутом и анимациями думаю сойдёт, если попробуете, ибо когда виден результат невооружённым глазом, то эффект значительно выше.

UFO just landed and posted this here
Эта статья — мой идеал. Честно. Мне очень понравилось. Даже похоже на мини-рассказ. И даже юморком приправлено. Может поподробнее напишите про работу, доллары и США?(или не США, просто в рифму)

Автор, Вы молодец. Но создавать подобное — Сизифов труд. **** Google не хочет развивать идею расширений и их возможностей, поэтому приходиться постоянно стрелять себе в ноги и играться с велосипедами. У них даже баги висят на dev уже 5 лет и никто их фиксить не собирается. Мне тоже очень интересная тема улучшения интернета под себя, но адекватных инструметов пока нет. Буквально в прошлом семестре писал курсовую по теме "работа с закладками". Расширение должно было брать информацию через нейронные сети о странице и автоматически добавлять теги для упрощённого поиска в будущем(прокачанный покет). Теперь буду усложнять это на дипломную работу. Поверьте, Google будет обновлять все, кроме функционала и удобства работы с расширениями.

С самого начала можно было гарантированно сказать что никто и не будет использовать этот плагин.

Корпорация добра стимулирует использование расширений ТОЛЬКО из их магазина.

Если установить что-то в режиме разработки, то через несколько дней, под предлогом безопасности, при запуске браузера начнут предлагать удалить этот плагин и нету возможности запретить это. Очень не многие пользователи будут готовы нажимать cancel каждый раз.

А у плагинов из магазина такая репутация, что очень не многие из тех кто понимает потенциальные возможности в проблемах с безопасностью согласятся установить это расширение. Особенно с учетом тех привилегий которые нужны для его правильной работы.

Так что поверьте, нету завышенных ожиданий.

Сообщения с предлогом "отключить пользовательские расширения" не появляются в chrome canary. Мне очень обидно что google не видит потенциала в этом направлении в 2017 году, к сожалению сейчас век нативных приложений.

Перевыполнила капиталистические обязательства, добавила поддержку не только FireFox, но и MS Edge.

Детали смотрите под update 4.
Прочитала статью «И ещё примерно 3,3 тыс новых способов читать «Хабрахабр» и «Гиктаймс»» и последний комментарий как раз типичный случай когда такой плагин мог бы быть использован, если что-то не устраивает в UI/UX сайта.

Текст комментария (надеюсь автор не возражает):

«Очень странно, что на ресурсе, где комментарии к статьям порой бывают интереснее самих статей, нет нормальной работы с комментариями. Я много раз писал в поддержку, но безрезультатно. Вот, что хотелось бы уметь делать:

1. Свернуть ветвь комментариев
2. Перейти к следующему топ-левел комментарию
3. Сортировать комментарии по рейтингу»

Попробовала реализовать в меру своего понимания как было бы удобно.

Как попробовать:

Открываем «options», добавляем новый элемент, вводим любое имя.

В url: ^https?://[^/]*(habrahabr|geektimes)\.ru

В Source копируем код
if(!document.querySelector('a[data-cid]'))
{
   document.querySelectorAll('.comments_list ul > li.comment_item').forEach(li => {
		if(li.querySelector('ul > li')) {
			var liNext = li.nextElementSibling;
			li.parentNode.querySelectorAll('#' + li.id + ' > .comment_body .comment-item__controls').forEach(dv => {
				var a = document.createElement('a');
				a.innerText = 'hide responses';
				a.setAttribute('href', '#');
				a.setAttribute('data-cid', li.id);
				dv.appendChild(a);

				if(liNext) {
					var a = document.createElement('a');
					a.style.marginLeft = '1em';
					a.innerText = 'next in the level';
					a.setAttribute('href', '#' + liNext.id);					
					dv.appendChild(a);
				}
			}); 
		}
        });

        var rates = [];
        document.querySelectorAll('.comments_list ul > li.comment_item').forEach(li => {
		var rate = parseInt(li.parentNode.querySelector('#' + li.id + ' > .comment_body .js-voting span').innerText.replace('–', '-'));
		rates.push({ r: rate, id: parseInt(li.id.substring(8)) });
        });

        rates.sort(function(a, b) {
            if(a.r < b.r)
                return 1;
            else if(a.r > b.r)
                return -1;
            else {
                if(a.id < b.id)
                    return -1;
                else if(a.id > b.id)
                    return 1;
                else
                    return 0;
            }
        });

	var currentRate = 0;
	var a = document.createElement('a');					
	a.innerText = '++';
	a.setAttribute('style', 'margin-top: 2em; font-weight: bold; font-size: 20px; color: #808020; background-color: white; text-decoration: none; cursor: pointer;');
        document.querySelector('#xpanel').appendChild(a);
	a.addEventListener('click', (event) => {
		if(currentRate < rates.length)
		{
			var url = location.href;
			location.href = "#comment_" + rates[currentRate].id;
			history.replaceState(null,null,url);
			currentRate++;
		}
	});

   document.querySelector('.comments_list').addEventListener('click', (event) => {
	var t = event.target;
	if(!t.getAttribute('data-cid'))
		return;

	event.preventDefault();
        event.stopPropagation();
	t.innerText = (t.innerText == 'hide responses' ? 'show responses' : 'hide responses');
        document.querySelectorAll('li#' + t.getAttribute('data-cid') + ' > ul').forEach(ul => { 
		ul.style.display = (ul.style.display == 'none' ? 'block' : 'none'); 
	});	
   });
}


1. После открытия статьи будет возможность скрыть / показать ответы, ссылка «hide/show responses».
2. Перейти к следующей статьи на этом уровне (ссылка «next in the level»)
3. При нажатии "++" под иконкой «обновить комментарии» будет переходить по рейтингу и дате комметариев

Пример как это выглядит


Спасибо! Для мобильных браузеров и, соответственно, мобильной версии сайта работать будет?

А разве можно ставить дополнения под хром в больной версии хрома?

Sign up to leave a comment.

Articles