Перейти к содержимому
0
  • Категории
  • Последние
  • Популярные
  • Категории
  • Последние
  • Популярные
Свернуть
  1. Главная
  2. Категории
  3. Начало эпохи
  4. Вконтакте
  5. Скрипты
  6. Создание расширения для Google Chrome

Создание расширения для Google Chrome

Запланировано Прикреплена Закрыта Перенесена Скрипты
4 Сообщения 3 Участники 1 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
Авторизуйтесь, чтобы ответить
Эта тема удалена! Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • XAMAS Автор
    XAMAS
    XAMAS
    Это сообщение удалено!
    написал в отредактировано
    врпачспр
    #1

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

    Для работы с расширениями вам понадобится переключить канал обновлений на Dev или Beta.

    Расширение будет иметь кнопку с иконкой на панели инструментов Chrome. При нажатии на кнопку будет появляться всплывающее окно (popup) со случайной картинкой из галлереи фотографий телескопа Hubble. В верхней части окна будут размещены кнопки: настроить (показать страницу настроек), обновить (показать другую фотографию), закрыть (закрыть всплывающее окно).

    Расширение будет содержать страницу настроек (options), на которой можно будет выбрать язык интерфейса (русский, английский) и выбрать размер картинки (маленький, большой).

    Добавлено через 00:17 мин.
    Создание расширения начинается с создания папки, в которой мы будет создавать все необходимы для работы расширения файлы. Созадим папку HubblePics. Далее создадим файл, который будет содержать описание нашего расширения — manifest.json. Данный файл является обязательным для каждого расширения. Именно из него Chrome получает всю необходимую информацию о расширении (название, версия, разрешения, страницы расширения и т.д.).

    Добавлено через 00:55 мин.
    {
    "name": "Hubble pictures extension", // Название расширения
    "version": "1.0", // Номер версии
    "description": "Hubble pictures extension", // Описание расширения

    "permissions": [
    "tabs", // Разрешить расширению работать с вкладками
    "http://hubblesite.org/*" // Разрешить расширению обращаться к указанному адресу
    ],

    "browser_action": { // Элементы браузера
    "default_title": "Hubble", // Название кнопки
    "default_icon": "images/icon.png", // Иконка для кнопки
    "popup": "popu***ml" // Всплывающее окно
    },

    "options_page": "options.html" // Страница настроек
    }

    • This source code was highlighted with Source Code Highlighter.

    Подробное описание файла manifest.json вы можете получить здесь

    Настройки

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

    Сохранять настройки можно в объекте localStorage, который, по сути, представляет из себя ассоциативный массив, хранящий пары «название», «значение». Например, для сохранения состояния радиокнопки «Размер картинки — Маленький», используется код:

    localStorage["previewSmall"] = document.getElementById("previewSmall").checked;

    Для восстановления состояния:

    document.getElementById("previewSmall").checked = (localStorage["previewSmall"] == "true") ? true : false;

    В своем проекте я обернул обращение к localStorage в функцию readProperty чтобы избавится от лишних проверок и получить возможность получения значения по умолчанию:

    function readProperty(property, defValue)
    {
    if(localStorage[property] == null)
    {
    return defValue;
    }

    return localStorage[property];
    }

    // Пример вызова
    document.getElementById("previewSmall").checked = readProperty("previewSmall", true);

    • This source code was highlighted with Source Code Highlighter.

    Добавлено через 01:21 мин.
    Локализация

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

    Идея простая — есть ряд элементов, которые нужно перевести. У них есть идентификаторы. Создается ассоциативный массив или объект, в котором идентификатору элемента соответствует локализованный текст. Функция, которая занимается локализацией «пробегает» по массиву, по идентификатору находит контрол и устанавливает ему текст.

    Создадим файл с названием элементов и указанием языка. Язык «регистрируется», путем добавления элемента в выпадающий список «Язык». Например русский язык добавляет в список элемент с текстом «Russian» и значением «ru_RU».

    Файл \locale\ru_RU\options.js

    0 Ответов Последний ответ
    0
    • Сталин
      Сталин
      Сталин
      Это сообщение удалено!
      написал в отредактировано
      #2

      Спизжено с хабра

      XAMAS 1 Ответ Последний ответ
      0
      • Сталин Сталин

        Спизжено с хабра

        XAMAS Автор
        XAMAS
        XAMAS
        Это сообщение удалено!
        написал в отредактировано
        врпачспр
        #3

        RegisterLang();

        lang_ru_RU =
        {
        lngLanguage: "Язык", // Пара - идентификатор (id) элемента, текст

        lngPreviewSize: "Размер картинки",
        lngPreviewSmall: "Маленький",
        lngPreviewBig: "Большой",

        lngSave: "Сохранить",
        lngExit: "Выход"
        }

        function RegisterLang()
        {
        var ctrl = document.getElementById("language");

        ctrl.add(createOption("Russian", "ru_RU"));
        }

        • This source code was highlighted with Source Code Highlighter.

        Добавлено через 00:32 мин.
        некоторые писали что как делать их я написал

        0 Ответов Последний ответ
        0
        • скотинка развекаетса
          скотинка развекаетса
          скотинка развекаетса
          Это сообщение удалено!
          написал в отредактировано
          Продвинутый
          #4

          Нагло скопировано.Сам то небось его не создашь.

          0 Ответов Последний ответ
          0

          • Войти

          • Войдите, чтобы искать.
          © 2011–
          • Первое сообщение
            Последнее сообщение