Как стать автором
Обновить

Комментарии 39

Очень даже удобоваримо для новичка, спасибо!
Скажите, а есть возможность писать расширения на Python?
Честно говоря, я не слышал о клиент-сайдном Питоне для Хрома.
Нет, только JavaScript, ну и языки, компилирующиеся в него.
Нет, на Python нельзя.
Отличная идея! Сам думал написать пару статей, после того, как закончил бы свое расширение
НЛО прилетело и опубликовало эту надпись здесь
мне почему-то первое время после того как я пересел на Хром с Оперы очень не хватало блокнотика как в Опере — из существующих на то время расширений ничего не нравилось.
Вот так появилось первое мое расширение. Для Хрома

Второе было для браузерной игры — упрощающее мне жизнь и преобразующее интерфейс, User scripts — меня не устраивали как в опере так и в Хроме — мне хотелось иметь возможность отключить расширение + чтобы были свои настройки.
Сейчас пересел на слабый комп + Ubuntu — по ощущениям хром тянет больше ресурсов — в итоге пересел обратно на оперу — так очень не хватает расширения Google Alerter — появится время — попробую написать. Впрочем вот вам и идея — только для Оперы.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Сделайте расширение для хабра.
А то для лиса уже есть а для хрома, к сожалению нет :(
НЛО прилетело и опубликовало эту надпись здесь
новые комментарии и ответы во всплывающем окошке (с настройкой как долго показывать) и возможностью ответа в том же окошке. Плюсы минусыб рейтинг, карму итп. Было бы прикольно :)
Спасибо! Интересно. Расскажите пожалуйста, как добавлять иконку не на панеле, а на самой строке адреса. Как это делает например расширение AdBlock Plus.
Это во второй части будет.
небольшой спойлер — Page Actions
Yep. Они самые.
window.onload = function() {
window.setInterval( function() {}, 10000);
}


Не совсем понял почему вы используете такой вариант для инициализации кода
Ведь в есть Events?
Для самого простого примера.
type=«application\javascript» не существует.
Вообще документация по chrome расширениям очень просто написана и с примерами.
Я хотел написать расширение, которое вставляет пароли как часть sha1 от соли и домена. Вроде просто, но как спрашивать пользователя о вставке я до сих пор не придумал. Есть chrome.experimental.infobars, замечательно, но оно пару лет experimental. Не знаю куда и копать.
спасибо, очень интересно. и напишите ещё в заключительной части как сделать так чтоб chrome не жрал всю доступную память
Поставить побольше памяти? Мне помогло :)
у меня 4гб и больше нельзя, да когда поставил стало заметно лучше, но всё равно каждые 1,5-2 часа нужно перегружать chrome
Хм, у меня тоже 4, включая иде, Хром (~30 вкладок включая одну с 300 метровой флэшкой), видеоплеер и врайтер, 2 гига из 4 занято только, аптайм двое с лишним суток.
я тоже так могу но с только firefoxом, хром же сжирает всё за пол-часа и начинает тупить
Не хватает var с = this.canvas; в начале этой ленты. Затем, обратите внимание на повторяющиеся
   this.canvas.save();
(function)
   this.canvas.stroke();
   this.canvas.restore();


2. Много var можно не повторять, а писать через запятую. Чтобы не забывать запятые и не заменять по ошибке на ";", их можно писать перед строчкой.

3. Чем помогает .restore() 2 раза подряд? (Действительно вопрос, без сарказма.)

4. Ещё, пожалуй, не хватает таких ссылок на Хабр:
habrahabr.ru/blogs/browsers/133543/ — Написание расширения для Оперы и Хрома: взгляд на процесс
habrahabr.ru/blogs/javascript/130436/ — Userscripts. Упаковываем юзерскрипт для Chrome
Спасибо большое за статью, пригодится.
Раньше делал пару расширений и что-то подзабылось уже.
Пора вспоминать! Буду следить за появлением следующей статьи.
P.S. Давно в сети не встречал архивов в формате .rar — пришлось даже установить необходимую программу чтобы его распаковать.
Обычно все время попадается только zip/tar.gz а zip так вообще распакуется во всех(?) свежеустановленных системах без установки чего-либо. Ну не распаковался он у меня в Ubuntu 11.10
Практическая польза использования это точно.
Не мог найти поисковик по озону из контекстного меню правой кнопки, по типу яндексмаркетовского — написал, сейчас благополучно пользую :)
А можно по подробнее почитать, как это реализовать, то же есть такая потребность, чтобы был поисковик по типу, выделил фразу, нажал на нее правой кнопкой и выбрал искать по «название сайта».
Подробнее почитать не знаю, я читал code.google.com/chrome/extensions/devguide.html и гуглил всякое. В гайдах гугла все довольно понятно расписано, с примерами.
Там все довольно просто, единственная проблема у меня возникла в том, как передать выделенную фразу контекстному меню.

В общем, выглядит это так:
— manifest.json, в нем всякие обьявления:
"permissions": [ "http://ozon.ru/*",
"contextMenus",
"tabs"],

Думаю, понятно что оно делает. Почитать про это можно в гугловских гайдах по ссылке выше.
— background.html: тоже понятно — указан файл скрипта там.
— собсно, сам скрипт, невзрачные несколько строчек:
function doFind(info, tab) {
chrome.tabs.create({"url": "http://www.ozon.ru/?context=search&text=" + info.selectionText, "selected": false})
}

var title = chrome.i18n.getMessage("search_string") + " \'%s\'";
chrome.contextMenus.create({"title": title, "contexts": ["selection"], "onclick": doFind});

Название doFind где-то подсмотрел, понравилось.

var title = chrome.i18n.getMessage("search_string") + " \'%s\'"; вот с этим и возникла проблема — пробовал всякое document.getSelection писать, ничего не помогало (хотелось бы конечно понять, почему). Так и не понял до конца, в чем подвох. Наткнулся на \'%s\'" чисто случайно.

— русская локаль. Не то что бы я планировал переводить, но захотелось сделать «по правильному».

В итоге, это выглядит так:
Изображение - savepic.su — сервис хранения изображений
Спасибо огромное, за подробный комментарий, но как оказалось документация и примеры в сети есть и они очень хорошие, добавил себе уже поиск по кинобазе и еще нескольким сайтам.

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

Теперь думаю еще кнопочку на панель вывести с быстрым доступом на часто посещаемые страницы сайта.
Оказалось так интересно. =)
Не могли бы вы выложить куда-нибудь (например, на github) весь код расширения?
спасибо за статью. в качестве учебного расширения начал делать генератор паролей.
уже генерит пароли такого плана «hoSKvgv1iz» «FvdqxKvsq4». сейчас делаю страницу опций
выложил extension на github github.com/stfalcon/chrome-extension_genpass
Спасибо! Ждем вторую часть.

Хотелось бы узнать, как писать расширения для конкретного сайта, разбирать html код текущей страницы, вставлять html-элементы (если возможно), а также про то, как работать с контекстным меню (вызываемого правым кликом).
Действительно, очень хорошее руководство, второй части не хватает.
Не хватает, увы. Как-то так получилось, что ну не прёт она — и всё тут. Как выпрет, сразу опубликую, конечно.
Жаль, что так поздно натолкнулся на ваш пост. С переходом на manifest 2, ваш «Hello world» больше не работает. Зато приходится разбираться самому, а не копипастить бездумно готовый код.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории